我想用java产生一个字符串“TREFFLAGDATAC000000EN”的MD5校验和值,但是对于相同的字符串IBM InfoSphere DataStage正在生成不同的MD5校验和值。发现由java和datastage生成不同的MD5哈希值
任何人都可以请指导我如何生成数据阶段给出的相同的MD5校验和值?
MD5由Java代码:通过数据阶段产生4659dff22b357cd9cc9fe0979603d1ab MD5:fd607ac2a5d19980795c584dff24b899
下面是我的Java代码
public static void main(String[] args) throws UnsupportedEncodingException{ String value = "TREFFLAGDATAC000000EN"; String hashCode = DigestUtils.md5Hex(value.getBytes("UTF-8")); System.out.println(hashCode); }
那么目前你的代码是特定于平台的 - 你使用'value.getBytes()'这将使用平台默认编码来转换文本成字节。这可能不是问题,但它是*潜在的问题。你也在一个字符串上调用'toString()',这很奇怪。您的示例代码中的“值”是空字符串,而不是“TREFFLAGDATAC000000EN”。 –
感谢您的回复Jon。我现在用字符串值更新了我的代码。 – user3488451