我正在使用SHA-512來哈希我的密碼並將它們存儲在mysql數據庫中。是否有任何要求sha-512的輸入不應包含任何特殊字符? 因爲密碼'Qwerty123.1'和'Qwerty123'。正在接受治療,但「Qwerty.11」與上述內容不一樣。問題是什麼?SHA-512特殊字符處理
,我使用的代碼是:
BASE64Decoder decoder=new BASE64Decoder();
byte[] b=decoder.decodeBuffer(r1); //r1 is the string containing password
MessageDigest md=MessageDigest.getInstance("SHA-512");
md.update(b);
byte[] plaintext=md.digest();
BASE64Encoder encoder=new BASE64Encoder();
String digest1=encoder.encode(plaintext); //digest1 contains the msg digest
號,輸入到哈希函數是二進制(字節數組),所以這是一個問題的不是。通常它是客戶端(鍵盤佈局,網頁瀏覽器,程序),使用戶難以正確輸入特殊字符。 – vasquez 2012-02-13 09:46:40