我试图用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; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。