2012-07-07 148 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),这是你所拥有的,所以它似乎是合理的我。