在存入數據庫之前,我使用PHP的crypt()函數對密碼進行加密。現在如果密碼包含數字,則具有相同子字符串的所有密碼將生成相同的加密。例如,下面的所有密碼都會生成相同的加密。使用crypt()函數生成相同加密的不同密碼
echo crypt('abcdefg123','mykey').'<br>';
echo crypt('abcdefg123','mykey').'<br>';
echo crypt('abcdefg123456','mykey').'<br>';
加密的密碼結果是
myeWT99Ku6TaM
我在做什麼錯?或者它是一個錯誤?
僅使用前8個字符來生成散列。由於所有輸入中的前8個字符相同,因此您將得到相同的結果。此外,生成的散列將<= 13個字符 – Tushar
我也建議你檢查這個密碼散列在PHP中:http://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing -passwords-in -php – Night2
'crypt()'不提供[加密](https://paragonie.com/blog/2015/08/you-wouldnt-base64-a-password-cryptography-decoded),它提供密碼散列。密碼哈希是密碼學,但它不是加密。 –