2012-07-07 197 views
0

我一直在玩代碼找到here。我得到的東西散列密碼

UKepQT7tW8mGtOJzNaLV2X+Ij/E= 

時,我認爲使用

String t = base64EncoderDecoder.encodeAsString(f.generateSecret(spec).getEncoded()); 

我的哈希密碼的哈希密碼。它應該有象/ + =的符號嗎?我也希望散列時間更長。我搞砸了嗎?

回答

3

它應該有像+/=?這樣的符號嗎?

那麼,根據什麼應該是第一款谷歌結果(Wikipedia article on Base64 encoding),+/是分別映射到62和63個符號。 =是一個填充字符。

此外我希望散列更長。

爲什麼?這只是您使用的編碼方法的結果。對基址16中的內容進行編碼將佔用50%以上的字符(因爲每4位需要1個字符,而不是每6位1個字符)。從一參考你舉:

// SHA-1 generates 160 bit hashes, so that's what makes sense here 

160位結果在27字符Base64編碼(六分之一百六十〜= 27),這是你所擁有的,所以它似乎是合理的我。