云计算加密

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));
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值