2013-04-25 51 views
-2
public static byte[] createHash(String stringToHash) throws UnsupportedEncodingException { 

    MessageDigest digestor; 

    byte[] byteInput = null; 

    try { 
     digestor = MessageDigest.getInstance("SHA-1"); 
     digestor.reset(); 
     byteInput = digestor.digest(stringToHash.getBytes("UTF-8")); 
    } catch(NoSuchAlgorithmException e){}; 

    return byteInput; 

} 

所以我試圖做一個非常簡單的方法,其中一種方式加密一個字符串,我是一個完全加密noob,儘管我努力通過在線閱讀來理解它。單向加密,將散列字符串保存到文件中?

事情是我想將這些信息存儲在一個文件/數據庫(這是真的無關緊要,因爲我不問如何獲取或插入信息到數據庫)。假設我在文本文件中非常簡單地存儲它,我將如何將字節數組寫入文本文件?使用一個單獨的for循環將所有字節引入文件或?因爲當我嘗試使用我的類時,無論使用什麼字符串,我都會得到相同的字節數組?再次赦免我的完全無知,但我該如何將字節數組格式化爲散列字符串,以便我可以對登錄的用戶密碼進行簡單加密,並將兩個字符串相互比較?

幫助非常感謝,請如果您有傲慢的評論和喜歡,請不要完全回答我的帖子!

謝謝!

+0

我覺得很奇怪,有人回答正確,如果它真的是模糊,不完整,過於寬泛和修辭?什麼是修辭呢?不管怎麼說,我找到了我需要的幫助。 – ObedMarsh 2013-04-29 18:41:07

回答

2

如果要將字節數組存儲爲字符串,請使用Base64對其進行編碼;當您稍後讀取字符串時,將其解碼回字節數組。 (這也是有用的,例如,如果你想傳輸一個URL中的字節數組;請注意,結果字符串將比原始字節數組大約33%)

如果你只是想寫一個字節數組到一個文件,然後使用FileOutputStream#write(byte[] b)

+0

我不知道爲什麼我會受到傷害,也許是因爲他們無法回答像你這樣的問題嗎?無論如何,我試圖使用Base64類,因爲你建議,但我不知道我應該如何導入它,日食似乎並不想爲我承認它?再次赦免我的無知,但我只是想了解這裏的方式和原因。 – ObedMarsh 2013-04-29 16:11:37

+0

您需要下載[Apache codec](http://commons.apache.org/proper/commons-codec/)jar並將其導入到Eclipse項目中。該罐子在顛覆中可用;你需要一個顛覆客戶端來獲取它,我推薦[TortoiseSVN](http://tortoisesvn.net/)。 – 2013-04-29 16:14:58

+0

好吧,現在他們真的很生氣,但是感謝那些信息,這正是我一直在尋找的。 – ObedMarsh 2013-04-29 18:38:45

相關問題