为同一字符串生成新的 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));
我已经编写了生成 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));