2013-02-07 86 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

如果可能的話還哈希轉換爲字符串

你不能。哈希是一種單向函數(假設你的意思是回到原始字符串)

相關問題