java secretkey_Java SecretKeyFactory生成的密钥与输入密码相同

已解决

密码学Python

Java SecretKeyFactory生成的密钥与输入密码相同649788f17101bff39e9643602f4d66a1.png10

我正在尝试使用PBE生成密钥,但SecretKeyFactory生成的密钥与输入密码完全相同。 我尝试了不同的算法,迭代计数等等,它仍然是相同的,所以我觉得我在这里错过了一步。public SecretKey generateKey(String password, String salt) {

char[] passChars =   password.toCharArray();

byte[] saltBytes =   salt.getBytes();

SecretKeyFactory keyFactory =   SecretKeyFactory.getInstance("PBEWithHmacSHA256AndAES_128");

PBEKeySpec keySpec  =   new PBEKeySpec(passChars, saltBytes, 2048, 128);

SecretKey secretKey =   keyFactory.generateSecret(keySpec);

byte[] encodedKey =   secretKey.getEncoded();

System.out.println("key: " + new String(encodedKey));

return new SecretKeySpec(encodedKey, "AES");

}

编辑:如果我使用算法“PBKDF2WithHmacSHA1”,那么生成的密钥与密码不同,但为什么我使用的算法生成的密钥与输入密码完全相同?

华中路

2019.06.05

95fa9268de11d0061c77acb40a6f985f.png4427

3037648d6a74d46918a474e105002d34.png收藏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值