java – MessageDigest digest()方法
发布时间:2020-12-15 05:07:06 所属栏目:Java 来源:网络整理
导读:MessageDigest中的digest()方法是否应该始终为同一输入提供相同的哈希值? 我试过这个,每次都为同一个输入得到不同的哈希值集 md5 = MessageDigest.getInstance("MD5");System.out.println(md5.digest("stringtodigest".getBytes()));System.out.println(md5
MessageDigest中的digest()方法是否应该始终为同一输入提供相同的哈希值?
我试过这个,每次都为同一个输入得到不同的哈希值集 md5 = MessageDigest.getInstance("MD5"); System.out.println(md5.digest("stringtodigest".getBytes())); System.out.println(md5.digest("stringtodigest".getBytes())); System.out.println(md5.digest("stringtodigest".getBytes())); 更新:将参数更改为digest()方法 解决方法
你看到调用byte [].toString()的结果 – 它没有显示数据的实际哈希值.你基本上得到一个字符串,表明你在字节数组上调用了toString(即[B部分],然后是Object.hashCode()返回的散列(这是@之后的十六进制值).该哈希码不会考虑数组中的数据.
尝试 System.out.println(Arrays.toString(md5.digest(byteArrayToDigest))); 查看实际数据. 编辑:关于从字符串数据创建MD5摘要的快速说明 – 在散列时,应始终明确使用相同的编码.例如: byte[] hash = md5.digest(text.getBytes("UTF-8")); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |