云计算加密

Java 密钥库

接下来,让我们想想加密密钥。Java 平台的核心库可用于创建强加密密钥;但是,这些方法总是会得到一个随机生成的新密钥。所以,如果您使用 Java KeyGenerator 类创建密钥,则需要存储该密钥,以供将来使用(也就是说,在您决定使用该密钥解密已加密的文本之前使用)。为此,您可以使用 Java 平台 KeyStore 实用程序和相应的类。

KeyStore 包含一组类,这些类使您能够将密钥保存到采用密码保护的二进制文件(名为 keystore)中。我可以使用一些测试案例来测试 Java 中的密钥。首先,我创建一个 Key 的两个实例,显示每个实例对应的加密的 String 是不同的,如清单 4 所示:


清单 4. 使用两个不同密钥的简单加密
				
@Test
public void testEncryptRandomKey() throws Exception {
 SecretKey key = KeyGenerator.getInstance("AES").generateKey();
 Cryptographical crypto = AESCryptoImpl.initialize(new AESCryptoKey(key));
 String enc = crypto.encrypt("Andy");
 Assert.assertEquals("Andy", crypto.decrypt(enc));

 SecretKey anotherKey = KeyGenerator.getInstance("AES").generateKey();
 Cryptographical anotherInst = AESCryptoImpl.initialize(new AESCryptoKey(anotherKey));
 String anotherEncrypt = anotherInst.encrypt("Andy");
 Assert.assertEquals("Andy", anotherInst.decrypt(anotherEncrypt));

 Assert.assertFalse(anotherEncrypt.equals(enc));
}


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭