Tag: jce

检查JCE无限强度pipe辖权政策文件

如果JCE Unlimited Strength Jurisdiction Policy文件已经在JVM中正确安装(因为系统的其他部分performance得好像没有),我很有用。 有人可以提供一个代码示例,我可以用它来检查这些文件是否真的被JVM使用?

如何在Java中创build一个安全的随机AES密钥?

使用标准JDK在Java中生成安全,随机的AES密钥的推荐方法是什么? 在其他文章中,我发现这一点,但使用SecretKeyFactory可能是一个更好的主意: KeyGenerator keyGen = KeyGenerator.getInstance("AES"); SecureRandom random = new SecureRandom(); // cryptograph. secure random keyGen.init(random); SecretKey secretKey = keyGen.generateKey(); 如果答案中包含了解释为什么这是生成随机密钥的好方法,那将是非常好的。 谢谢!

如何在Mac OS X中为JRE 7安装无限强度的JCE?

我为MacOSX安装了Oracle JRE 7(不是JDK),但是我找不到JCEpipe辖区文件的放置位置。 我需要用无限强度的版本来replace它们。

检查是否有无限密码

如何在Java代码中检查当前的JVM是否具有无限的强度encryption?

为什么java.security.NoSuchProviderException没有这样的提供者:BC?

jar(bcprov-jdk16-145.jar)已被添加到项目中, Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider())已被添加到类中, BouncyCastleProvider.PROVIDER_NAME确实返回“BC “但AesFileIo.writeFile()仍然抛出java.security.NoSuchProviderException No such provider: BC 。 有任何想法吗? import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.ObjectOutputStream; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.bouncycastle.jce.provider.BouncyCastleProvider; public class AesFileIo { private static final String AES_ALGORITHM = "AES/CTR/NoPadding"; private static final String PROVIDER = BouncyCastleProvider.PROVIDER_NAME; private static final byte[] AES_KEY_128 = { // Hard coded for now […]

散列string通过Java中的SHA-256

通过环顾这里以及一般的互联网,我find了Bouncy Castle 。 我想使用Bouncy Castle(或其他一些免费的实用程序)来生成Java中string的SHA-256哈希表。 看着他们的文档,我似乎无法find我想要做的任何好例子。 这里有人能帮我吗?

InvalidKeyException非法密钥大小

我有一个testing,运行在我的发展MacBook Pro的伟大,但未能在持续集成TeamCity服务器运行。 错误如下: java.security.InvalidKeyException: Illegal key size at javax.crypto.Cipher.a(DashoA13*..) at javax.crypto.Cipher.init(DashoA13*..) at javax.crypto.Cipher.init(DashoA13*..) 开发盒和TeamCity都使用Java 1.6,我使用BouncyCastle库来满足特殊的AESencryption需求。 代码如下: private byte[] aesEncryptedInfo(String info) throws UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidParameterSpecException, InvalidAlgorithmParameterException, NoSuchProviderException { Security.addProvider(new BouncyCastleProvider()); SecretKey secret = new SecretKeySpec(CUSTOMLONGSECRETKEY.substring(0, 32).getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC"); cipher.init(Cipher.ENCRYPT_MODE, secret, new IvParameterSpec(VECTOR_SECRET_KEY.getBytes())); return cipher.doFinal(info.getBytes("UTF-8")); } UPDATE 看起来像根据选定的答案,我必须修改我的TeamCity安装的东西,它可能会影响一些用户安装 – […]

信任商店vs关键商店 – 使用keytool创build

我知道密钥库通常会保存私钥/公钥和信任存储公钥(并且代表您要与之通信的可信方的列表)。 那么,这是我的第一个假设,所以如果这是不正确的,我可能还没有开始好… 我对使用keytool时如何区分商店感兴趣。 所以,我已经创build了一个密钥库使用 keytool -import -alias bob -file bob.crt -keystore keystore.ks 它创build我的keystore.ks文件。 我回答yes的问题,我相信鲍勃,但它不知道这是否已经创build了一个密钥库文件或信任库文件? 我可以设置我的应用程序使用该文件。 -Djavax.net.ssl.keyStore=keystore.ks -Djavax.net.ssl.keyStorePassword=x -Djavax.net.ssl.trustStore=keystore.ks -Djavax.net.ssl.trustStorePassword=x 和System.setProperty( "javax.net.debug", "ssl")设置,我可以看到在可信任证书(但不在密钥库部分下)的证书。 我正在导入的特定证书只有一个公钥,我打算使用它通过SSL连接向Bob发送东西(但也许这是最好的另一个问题!)。 任何指针或澄清将不胜感激。 keytool的输出与导入的输出是否相同,以及它只是一个密钥库而另一个是信任存储的惯例? 使用SSL等有什么关系?

如何避免在部署应用程序时安装“无限强度”JCE策略文件?

我有一个使用256位AES加密的应用程序,Java不支持开箱即用。 我知道得到这个功能正常我安装JCE无限强度罐在安全文件夹。 这对我是开发者来说很好,我可以安装它们。 我的问题是,因为这个应用程序将被分发,最终用户很可能不会有这些策略文件安装。 让最终用户下载这些只是为了使应用程序功能不是一个有吸引力的解决方案。 有没有办法让我的应用程序运行而不覆盖最终用户机器上的文件? 可以在没有安装策略文件的情况下处理它的第三方软件? 或者从JAR中引用这些策略文件的方法?