java 读mdb,使用Java / Jackcess从加密的Access .mdb中读取
我需要从加密的Access 97数据库中读取数据并尝试使用Jackcess和UCanAccess.
我正在使用来自bouncycastle.org的jackcess-2.1.2.jar,jackcess-encrypt-2.1.0和bcprov-jdk15on-152.jar
由于UCanAccess在内部使用Jackcess,我在其他所有尝试中都遇到了同样的错误.
import com.healthmarketscience.jackcess.CryptCodecProvider;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import java.io.File;
File fi = new File("test/access/data.mdb");
CryptCodecProvider cryptProvider = new CryptCodecProvider();
cryptProvider.setPassword("mypassword");
DatabaseBuilder dbb = new DatabaseBuilder(fi);
dbb.setFileFormat(Database.FileFormat.V1997);
dbb.setAutoSync(false);
dbb.setCodecProvider(cryptProvider);
dbb.setReadOnly(true);
Database dbc = dbb.open();
最后一行调用错误,这里是堆栈跟踪:
Exception in thread "main" java.lang.NoSuchMethodError: org.bouncycastle.crypto.StreamCipher.processBytes([BII[BI)V
at com.healthmarketscience.jackcess.impl.BaseCryptCodecHandler.streamDecrypt(BaseCryptCodecHandler.java:91)
at com.healthmarketscience.jackcess.impl.BaseJetCryptCodecHandler.decodePage(BaseJetCryptCodecHandler.java:62)
at com.healthmarketscience.jackcess.impl.PageChannel.readPage(PageChannel.java:224)
at com.healthmarketscience.jackcess.impl.UsageMap.read(UsageMap.java:130)
at com.healthmarketscience.jackcess.impl.PageChannel.initialize(PageChannel.java:117)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.(DatabaseImpl.java:516)
at com.healthmarketscience.jackcess.impl.DatabaseImpl.open(DatabaseImpl.java:389)
at com.healthmarketscience.jackcess.DatabaseBuilder.open(DatabaseBuilder.java:248)
at ACCESS.ACCESSTest.main(ACCESSTest.java:84)
解决方法:
事实证明,虽然jackcess-encrypt与bouncycastle 1.52源兼容,但它不是二进制兼容的.有关更多详细信息,请参见此feature request.基本上(现在),您需要使用1.50或更低版本的bouncycastle.
更新:从jackcess-encrypt的2.1.1版本开始,bouncycastle的旧版本(1.52之前版本)和更新版本(1.52版本)应该正常工作.
标签:java,encryption,ucanaccess,ms-access-97,jackcess
来源: https://codeday.me/bug/20190829/1763196.html
java 读mdb,使用Java / Jackcess从加密的Access .mdb中读取相关推荐
- csv java web 导入_DAY5-step9 使用CSV模块和Pandas在Python中读取和写入CSV文件
什么是CSV文件? CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据. CSV是一种紧凑,简单且通用的数据交换通用格式. 许多在线服务允许其用户将网站中的表格数据导出到CSV文件中. CSV ...
- java代码如何运用加密狗_如何使用JAVA从加密狗的SIM中读取短信
我使用以下代码从加密狗发送短信. 它的发送成功了. 现在我想从加密狗读取SIM短信或未读短信,所以任何人都可以告诉我如何阅读 以下是发送短信的代码 import org.smslib.Outbound ...
- java读mysql增量_如何复制行并在MySQL中使用自动增量字段插入同一个表?
如果您需要复杂的解决方案以便经常这样做,您可以使用以下过程: DELIMITER $$ CREATE PROCEDURE `duplicateRows`(_schemaName text, _tabl ...
- python怎么读文件里的指定几行-Python从文件中读取指定的行以及在文件指定位置写入...
Python从文件中读取指定的行 如果想根据给出的行号, 从文本文件中读取一行数据, Python标准库linecache模块非常适合这个任务: 测试文件内容 :This is line 1. Thi ...
- matlab读Excel表格数据画图,matlab读Excel表格数据画图-matlab如何从excel表格中读取数据?...
如何将excel表格中大量数据导入matlab中并作图 1.打开matlab,点击主页下面的数据导入,你可以导入excel数据,这里导入你自己命名的huitushuju文件. 2.单击"打开 ...
- adobe reader java_请问,如何用JAVA读PDF文件在浏览器中显示,不需要在本地系统中安装Adobe Reader。求java代码...
JAVA读PDF可以实现,重点是如何在网页中显示PDF文件,而且不需要安装AdobeReader.没有安装AdobeReader,在网页显示PDF文件时,浏览器会提示下载.请问如何在网页中显示PDF文 ...
- java转发乬数据,Java流编程实例及代码
1.前言 在众多流行的编程语言中,Java对IO的处理应该是最特殊的,Java打着"尽量减少IO类的设计理念",搞出了目前应该是最复杂的一套IO相关类,并称之为Java流. 对于新 ...
- 【java面试题】Java面试宝典2013版(超长版),抽象类是否可继承实体类
一. Java基础部分......................................................................................... ...
- Java开发必须掌握的5种加密策略
转载自 Java开发必须掌握的5种加密策略 本文总结自<大型电商分布式系统实践--第四课>.文末给出获取全套PPT及视频的方式. 一.数字摘要 数字摘要也称为消息摘要,它是一个唯一对应一个 ...
- java 操作accdb_使用Java创建Access数据库文件(.mdb或.accdb)
小编典典 Jackcess 2.x的更新:现在使用来创建(或打开)DatabaseBuilder数据库,因此我们要创建一个新的数据库文件 import java.io.File; import jav ...
最新文章
- Java程序 实验小全
- Scut游戏服务器引擎6.1.5.6发布,直接可运行,支持热更新
- PHP函数处理方法总结
- NOIP2017洛谷P3953:逛公园(分层图最短路、dp、拓扑)
- mvc 怎么把后台拼接好的div写到前台_MVC 从后台页面 取前台页面传递过来的值的几种取法...
- java加载jdbc驱动,加载JDBC驱动
- Pandas文件读取详解
- mysql date 索引_SQL 中 IS NULL 可以走索引
- 01_3基带传输的常用码型和码间串扰
- mysql复制一行sql语句_MySQL复制表数据操作sql语句
- discuz模板机制解析
- 安卓虚拟pc悬浮键盘_PC端鼠标vs手机端手势:两种交互有何异同点?
- HDU 5956 The Elder(树型DP+斜率优化)
- 2022年财务顾问FA行业研究报告
- mac linux网卡驱动下载官网下载,linux | 网卡驱动
- 计算机从图灵到冯诺依曼,电脑是谁发明的 冯·诺依曼和图灵(两人都起到了重要作用)...
- FairyGUI-GComponent组件
- Amazon Aurora Serverless v2 正式发布:瞬时扩展应对高要求的工作负载
- 3.Spark的安装(华为云学习笔记,Spark编程基础,大数据)
- tools:ignore=Suspicious0dp