【发布时间】:2013-06-21 13:48:12
【问题描述】:
当我使用 java 加密 md5 中的某些内容时,它会从哈希中删除所有 0,这对我来说不好,因为它不适用于 php,因为 php 不会删除 0。有什么办法可以修复它(除了让 php 也删除 0)。这是我的java代码:
public String getMd5Hash(String str) {
try {
byte[] array = MessageDigest.getInstance("MD5").digest(str.getBytes());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("Something went really wrong.");
}
return null;
}
【问题讨论】:
-
你能举个例子说明这会产生不正确的输出吗?
-
这只是一个填充问题(例如,前导零被删除)?如果是这样,就其包含的位数而言,MD5 哈希是否总是相同的长度?如果是这样,您不能在左侧用零填充结果以使其达到那个长度吗?