Java MD5-类型字符串的方法未定义
我有一个方法,它将字符串作为参数,并将字符串的MD5值作为字符串返回。但是,当我使用该方法时,我得到“Th method md5()对于类型String是未定义的”。我可能太累了,看到我犯了一个错误,你能帮我吗Java MD5-类型字符串的方法未定义,java,Java,我有一个方法,它将字符串作为参数,并将字符串的MD5值作为字符串返回。但是,当我使用该方法时,我得到“Th method md5()对于类型String是未定义的”。我可能太累了,看到我犯了一个错误,你能帮我吗 public static String md5(String s) { try { MessageDigest m = MessageDigest.getInstance("MD5"); m.reset();
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());
}
公共静态字符串md5(字符串s){
试一试{
MessageDigest m=MessageDigest.getInstance(“MD5”);
m、 重置();
m、 更新(s.getBytes());
字节[]摘要=m.摘要();
biginger bigInt=新的biginger(1,摘要);
返回bigInt.toString(16);
}捕获(例外e){
返回null;
}
}
公共空散列(){
int计数器=0;
StringBuilder sb=新的StringBuilder();
对于(int i=0;i字符串对象没有md5()方法,md5只接受一个参数。
你是说md5(sb.toString())
?错误在于String
没有md5()
方法。另外,你必须将字符串与equals()
进行比较,而不是=/code>是的,刚刚注意到了。睡眠剥夺正在成为一个标志。谢谢!