【发布时间】:2014-05-04 13:06:29
【问题描述】:
我想使用 MD5 哈希值作为 AES 密钥。但是 MD5 输出是十六进制数字(32 个四位值)。那么如何将它们转换为适合 AES 加密的格式(16 个 8 位值)。我希望在java中做到这一点。
【问题讨论】:
-
“但是 MD5 输出是十六进制数字” - 不,它只是二进制数据。您目前可能碰巧将其转换为十六进制,但您当然不必这样做。
我想使用 MD5 哈希值作为 AES 密钥。但是 MD5 输出是十六进制数字(32 个四位值)。那么如何将它们转换为适合 AES 加密的格式(16 个 8 位值)。我希望在java中做到这一点。
【问题讨论】:
我想您已经拥有来自另一个进程/程序的 MD5 HEX 字符串,您需要将此 HEX 值转换为字节 [16]。 使用以下方法:
import javax.xml.bind.DatatypeConverter;
public static byte[] toByteArray(String s) {
return DatatypeConverter.parseHexBinary(s);
}
【讨论】: