BouncyCastle 的 Threefish-512 是否需要某种配置?
Does Threefish-512 from BouncyCastle need some sort of configuration?
我正在尝试从 bouncycastle 获取一个使用 threefish-512 加密的 jdbc hsqldb 实例。 hsqldb 支持通过连接 url: http://hsqldb.org/doc/guide/dbproperties-chapt.html#dpc_crypt_props 进行配置。我熟悉密码学等基础知识,但从未使用过 JCE、bouncycastle 等。
我首先将 crypt_type=Threefish-512;crypt_key=de7e...
添加到我的连接字符串中。这引发了关于未知提供者和算法的异常。指定 crypt_provider=org.bouncycastle.jce.provider.BouncyCastleProvider
没有解决这个问题。
然后我在 jdbc 初始化之前将 Security.addProvider(new BouncyCastleProvider());
添加到我的代码中,现在 crypt_type=Threefish-512;crypt_key=de7e...
(没有 crypt_provider)似乎主要工作。它抛出了一个新的异常:
Illegal key size or default parameters
我的 crypt_key 是 128 个十六进制字符,所以它是一个 512 位密钥。我怀疑关键是这里的问题。调试密码 class 显示密钥确实被解析为 64 字节的数组。
将 bouncycastle/threefish 添加为提供商后,我是否需要对其进行某种配置?关于这个主题的简单信息在 Internet 上似乎非常少,没有关于 bouncycastle 的 threefish 或其他提到这个问题或我能找到的任何东西的快速入门。
Spring 启动项目,hsqldb 2.4.0,来自 maven 的 bouncycastle 1.59 org.bouncycastle:bcprov-jdk15on。一切都已经工作(数据库连接等),我只是想在它上面添加数据库加密。通常,您需要做的就是将 crypt_* 参数添加到连接字符串,hsqldb 将处理其余部分。
public static void main(String[] args) {
Security.addProvider(new BouncyCastleProvider());
ConfigurableApplicationContext app = SpringApplication.run(App.class, args);
application.properties
spring.datasource.url=jdbc:hsqldb:${app.db.path};create=${spring.datasource.initialize};hsqldb.tx=mvlocks;hsqldb.tx_level=serializable;crypt_type=Threefish-512;crypt_key=de7e...
我是不是漏掉了这样的东西?
BouncyCastleProvider provider = new BouncyCastleProvider();
provider.setParameter("foo", "bar");
Security.addProvider(provider);
唉。愚蠢的美国立法者和他们的恶作剧。我使用的是 java 8u151,它仍然具有受限制的加密策略。更新到 u161 解决了问题。
我正在尝试从 bouncycastle 获取一个使用 threefish-512 加密的 jdbc hsqldb 实例。 hsqldb 支持通过连接 url: http://hsqldb.org/doc/guide/dbproperties-chapt.html#dpc_crypt_props 进行配置。我熟悉密码学等基础知识,但从未使用过 JCE、bouncycastle 等。
我首先将 crypt_type=Threefish-512;crypt_key=de7e...
添加到我的连接字符串中。这引发了关于未知提供者和算法的异常。指定 crypt_provider=org.bouncycastle.jce.provider.BouncyCastleProvider
没有解决这个问题。
然后我在 jdbc 初始化之前将 Security.addProvider(new BouncyCastleProvider());
添加到我的代码中,现在 crypt_type=Threefish-512;crypt_key=de7e...
(没有 crypt_provider)似乎主要工作。它抛出了一个新的异常:
Illegal key size or default parameters
我的 crypt_key 是 128 个十六进制字符,所以它是一个 512 位密钥。我怀疑关键是这里的问题。调试密码 class 显示密钥确实被解析为 64 字节的数组。
将 bouncycastle/threefish 添加为提供商后,我是否需要对其进行某种配置?关于这个主题的简单信息在 Internet 上似乎非常少,没有关于 bouncycastle 的 threefish 或其他提到这个问题或我能找到的任何东西的快速入门。
Spring 启动项目,hsqldb 2.4.0,来自 maven 的 bouncycastle 1.59 org.bouncycastle:bcprov-jdk15on。一切都已经工作(数据库连接等),我只是想在它上面添加数据库加密。通常,您需要做的就是将 crypt_* 参数添加到连接字符串,hsqldb 将处理其余部分。
public static void main(String[] args) {
Security.addProvider(new BouncyCastleProvider());
ConfigurableApplicationContext app = SpringApplication.run(App.class, args);
application.properties
spring.datasource.url=jdbc:hsqldb:${app.db.path};create=${spring.datasource.initialize};hsqldb.tx=mvlocks;hsqldb.tx_level=serializable;crypt_type=Threefish-512;crypt_key=de7e...
我是不是漏掉了这样的东西?
BouncyCastleProvider provider = new BouncyCastleProvider();
provider.setParameter("foo", "bar");
Security.addProvider(provider);
唉。愚蠢的美国立法者和他们的恶作剧。我使用的是 java 8u151,它仍然具有受限制的加密策略。更新到 u161 解决了问题。