找到java和datastage生成的不同MD5哈希值

找到java和datastage生成的不同MD5哈希值,java,datastage,md5sum,message-digest,Java,Datastage,Md5sum,Message Digest,我正在尝试使用java为字符串“trefflagdatac00000en”生成MD5校验和值,但对于同一字符串,IBM InfoSphere DataStage正在生成不同的MD5校验和值 谁能告诉我如何生成data stage给定的相同MD5校验和值 java代码生成的md5:4659dff22b357cd9cc9fe0979603d1ab 数据阶段生成的md5:FD607AC2A5D19980795C584DF24B899 下面是我的java代码 publicstaticvoidmain(S

我正在尝试使用java为字符串“trefflagdatac00000en”生成MD5校验和值,但对于同一字符串,IBM InfoSphere DataStage正在生成不同的MD5校验和值

谁能告诉我如何生成data stage给定的相同MD5校验和值

java代码生成的md5:4659dff22b357cd9cc9fe0979603d1ab 数据阶段生成的md5:FD607AC2A5D19980795C584DF24B899

下面是我的java代码

publicstaticvoidmain(String[]args)抛出UnsupportedEncodingException{
String value=“trefflagdatac00000en”;
字符串hashCode=DigestUtils.md5Hex(value.getBytes(“UTF-8”);
System.out.println(hashCode);
}

您应该试试这个


我认为您应该在源代码末尾将vlaues更改为字符串数据类型。您将在abouve链接中找到一个示例。

您可以调试DataStage校验和,查看缓冲区内容。。。
实际上,DataStage校验和阶段只是在字符串末尾添加“|”叹气,因此…=)

目前,您的代码是特定于平台的-您使用的是
value.getBytes()
,它将使用平台默认编码将文本转换为字节。这可能不是问题,但这是一个潜在的问题。您还对字符串调用了
toString()
,这很奇怪。示例代码中的
value
是空字符串,而不是“trefflagdatac0000en”。谢谢您的回复Jon。我现在已经用字符串值更新了我的代码。谢谢你的回复。使用您共享的代码,我仍然得到相同的MD5值。但它与Data Stage工具生成的MD5校验和值不匹配。由java代码生成的MD5:4659dff22b357cd9cc9fe0979603d1ab由Data Stage生成的MD5:FD607AC2A5D19980795C5854DF24B899是否存在java和Data Stage之间MD5算法不同的场景?