我有一个方法,该方法将String作为参数,并以String的形式返回String的MD5值。但是,当我使用该方法时,我得到“对于String类型,未定义md5()方法”。我可能太累了,也看到我犯了一个错误,您能帮我吗?
public static String md5(String s) {
try {
MessageDigest m = MessageDigest.getInstance("MD5");
m.reset();
m.update(s.getBytes());
byte[] digest = m.digest();
BigInteger bigInt = new BigInteger(1, digest);
return bigInt.toString(16);
} catch (Exception e) {
return null;
}
}
public void hashing() {
int counter = 0;
StringBuilder sb = new StringBuilder();
for (int i=0; i<slovo.length(); i++) {
if (slovo.charAt(i)=='_') {
sb.append(characters.charAt(array[counter]));
counter++;
}else {
sb.append(input.charAt(i));
}
}
if (sb.toString().md5()==hash) { //this is the line which is producing the error
}
System.out.println(sb.toString());
}
答案 0 :(得分:3)
String对象没有方法md5(),并且md5接受单个参数。
您是说md5(sb.toString())
吗?