SHA2密码哈希在java中

我试图用SHA2哈希一些密码. 在哪里可以获得一个java代码片段? 我看过那篇文章,但我有一些缺失: SHA2 password storage with Java Mac mac = Mac.getInstance(HmacSha256); SecretKeySpec secret = new SecretKeySpec(key.getBytes(), HmacSha256); m

我试图用SHA2哈希一些密码.

在哪里可以获得一个java代码片段?

我看过那篇文章,但我有一些缺失:
SHA2 password storage with Java

Mac mac = Mac.getInstance("HmacSha256");
 SecretKeySpec secret = new SecretKeySpec(key.getBytes(),"HmacSha256");
 mac.init(secret);
 byte[] shaDigest = mac.doFinal(phrase.getBytes());
 String hash = "";
 for(byte b:shaDigest) {
     hash += String.format("%02x",b);
 }

这个短语是我想要的编码的字符串吗?什么是关键(第2行)

提前致谢

解决方法

首先,你需要清楚你想做什么.你说你要哈希密码,但你使用的代码是MAC(
Message Authentication Code),特别是
HMAC.

哈希和MAC是不同的目的(尽管HMAC确实涉及使用哈希).您需要确保根据您的要求使用正确的.

被要求提供密钥的原因是因为MAC需要一个密钥.哈希不要:

public byte[] hash(String password) throws NoSuchAlgorithmException {
    MessageDigest sha256 = MessageDigest.getInstance("SHA-256");        
    byte[] passBytes = password.getBytes();
    byte[] passHash = sha256.digest(passBytes);
    return passHash;
}

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部