Java 中的提供商独立加密?
Provider-independent crypto in Java?
我正在尝试在 Java 中编写一个程序,该程序将在插入之前对数据库条目进行数字签名。我希望程序独立于算法——理想情况下,用户将在运行时将 JCE 提供程序和算法指定为参数。
有办法吗?我一直在使用 BouncyCastle 提供程序进行测试,当我动态注册代码时代码运行良好:
Security.addProvider(new BouncyCastleProvider());
但是,当我尝试通过将以下行添加到我的 security/java.policy 文件的末尾来静态注册提供程序时,我收到错误:java.security.NoSuchProviderException: no such provider: BC
当我尝试获取一个使用提供程序的安全对象实例。
security.provider.1=sun.security.provider.Sun
security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
具体来说,我将这些行添加到 /etc/java-7-openjdk/security/java.policy
(链接到 $JAVA_HOME/jre/lib/security/java.policy
)。这是在 Ubuntu 12.04 上。我还尝试将 BouncyCastleProvider 添加为第一个条目,但得到了同样的错误。
我是否配置了静态注册错误或者我正在尝试的是不可能的?
我认为您将静态注册添加到了错误的文件中。
在同一文件夹中使用 security.policy
而不是 java.policy
。
参见:https://www.bouncycastle.org/wiki/display/JA1/Provider+Installation
我正在尝试在 Java 中编写一个程序,该程序将在插入之前对数据库条目进行数字签名。我希望程序独立于算法——理想情况下,用户将在运行时将 JCE 提供程序和算法指定为参数。
有办法吗?我一直在使用 BouncyCastle 提供程序进行测试,当我动态注册代码时代码运行良好:
Security.addProvider(new BouncyCastleProvider());
但是,当我尝试通过将以下行添加到我的 security/java.policy 文件的末尾来静态注册提供程序时,我收到错误:java.security.NoSuchProviderException: no such provider: BC
当我尝试获取一个使用提供程序的安全对象实例。
security.provider.1=sun.security.provider.Sun
security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider
具体来说,我将这些行添加到 /etc/java-7-openjdk/security/java.policy
(链接到 $JAVA_HOME/jre/lib/security/java.policy
)。这是在 Ubuntu 12.04 上。我还尝试将 BouncyCastleProvider 添加为第一个条目,但得到了同样的错误。
我是否配置了静态注册错误或者我正在尝试的是不可能的?
我认为您将静态注册添加到了错误的文件中。
在同一文件夹中使用 security.policy
而不是 java.policy
。
参见:https://www.bouncycastle.org/wiki/display/JA1/Provider+Installation