我有兩種方法在Java中,我想在php中做同樣的方法。我不知道什麼在php中。我該怎麼做?SHA1加密和SHA1到十六進制php
方法1:
public static String encyptPassword (String in) throws UnsupportedEncodingException, NoSuchAlgorithmException{
byte[] bytes=in.getBytes("UTF-8");
MessageDigest md=MessageDigest.getInstance(MGF1ParameterSpec.SHA1.getDigestAlgorithm());
md.update(bytes);
byte[] digest=md.digest();
return toHex(digest);
}
方法2:
public static String toHex(byte[] bytes) {
BigInteger bi = new BigInteger(1, bytes);
return String.format("%0" + (bytes.length << 1) + "x", bi);
}
在PHP中的方法(?函數)必須具有相同的結果在Java中,因爲它是散列密碼工作和在線登錄系統。
我試了3個小時左右,但我無法做到或找到解決方案。我想我讀了Stack上的所有帖子。你可以幫我嗎?謝謝。
請注意,用SHA *散列密碼是不正常的e,尤其是無懈可擊的,因爲它太快了。 SHA1可以以[30 Giga SHA1 /秒](http://hashcat.net/oclhashcat/#performance)的速度強制強制,這就是爲什麼人們應該使用像BCrypt或PBKDF2這樣的成本因子的慢哈希函數。 – martinstoeckli