嗨,我讀this post關於如何實現鹽和哈希到密碼,我堅持在我指定的網站下面指定的代碼。將填充添加到十六進制的目的是什麼?
private static String toHex(byte[] array)
{
BigInteger bi = new BigInteger(1, array);
String hex = bi.toString(16);
int paddingLength = (array.length * 2) - hex.length();
if(paddingLength > 0)
return String.format("%0" + paddingLength + "d", 0) + hex;
else
return hex;
}
我的問題是,爲什麼他們計算paddingLength
並落實到十六進制如果結果paddingLength
大於零?
這也是我的方法(如果我不需要性能)。但是我總是在字符串生成器的構造函數中指定'array.length * 2'。 – 2014-09-06 13:17:55