为同一字符串生成新的 MD5

New MD5 generating for the same string

我已经编写了生成 MD5 的代码,但不幸的是它每次都为同一个字符串生成一个新的 MD5。谁能帮帮忙

代码如下:

public static byte[] getHash(String[] constants)
{
MessageDigest md= MessageDigest.getInstance("MD5");
StringBuilder toBeHashed=new StringBuidler();
for(String c: constants)
{
toBeHashed.append(c);
}
return md.digest(toBeHashed.toString().getBytes());
}

Driver代码:

byte[] hash=MyClass.getHash(new String[] {"01L488213P9579","2021-31-31"});

谁能帮忙告诉我我写的代码是否正确?是不是因为新的String数组,我每次都pass了?

问题就在这里,当你说:

printing hash in my driver code, its coming like B@12.. something , new everytime

您正在打印使用 [​​=11=] 方法的数组对象,该方法为数组显示对象哈希码。它对于每个数组对象都是唯一的,因此每次获得新值时。

您必须打印数组内容,例如使用 java.util.Arrays:

System.out.println(java.util.Arrays.toString(hash));