2013-02-07 84 views
-2

在JAVA中 - 我想要一个可以接受用户输入并将该字符串转换为散列(md5或sha1)的小程序。如果可能的话,也将哈希转换为字符串。请指教我,我该如何做到这一点。将用户输入字符串转换为java中的散列

+2

你有没有试过这个呢? – theJollySin

+1

这样的问题已经存在:http://stackoverflow.com/questions/4895523/java-string-to-sha1 – Martinsos

+0

“如果可能的话,也可以将散列转换为字符串。”我也想有一个小程序,可以做到这一点.... :) – Affe

回答

0

这是一个普遍的问题。请参阅下面的帮助。

How can I generate an MD5 hash?

使用字符串输入,而不是文件中的线程所示的输入流。


忽略我以前的答案。以下是生成MD5哈希的方法。调用md5(文本)应该能够给出输出。

public static String md5(String text) throws Exception { 
    MessageDigest md = MessageDigest.getInstance("MD5"); 
    md.update(text.getBytes()); 
    return bytesToHex(md.digest()); 
} 

public static String bytesToHex(byte[] b) { 
    char hexDigit[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
      'A', 'B', 'C', 'D', 'E', 'F' }; 
    StringBuffer buf = new StringBuffer(); 
    for (int j = 0; j < b.length; j++) { 
     buf.append(hexDigit[(b[j] >> 4) & 0x0f]); 
     buf.append(hexDigit[b[j] & 0x0f]); 
    } 
    return buf.toString(); 
} 
+0

虽然这可能在理论上回答这个问题[这将是可取的](http://meta.stackexchange.com/q/8259)在这里包括答案的基本部分,并提供参考链接。 – jlordo

+0

这应该是一条评论。 – fonZ

+0

我对此表示歉意。新手的错误。我用java代码更新了我的答案。 – Slowcoder

1

如果可能的话还哈希转换为字符串

你不能。哈希是一种单向函数(假设你的意思是回到原始字符串)

相关问题