我有一個數以千計的md5加密密碼的數據庫,我需要遷移到sha256。通過使用md5訪問保留舊密碼並使用sha256加密新密碼來實現這一點最安全的方法是什麼?謝謝。如何從md5遷移到sha256加密
回答
除了爲sha256創建新列,您還可以使用現有列。因爲sha256散列比md5散列長很多,所以可以通過查看散列長度來檢測散列算法。
我也這麼認爲。只是對安全性有懷疑。 – afazolo 2012-03-05 18:45:51
我想爲sha256散列添加一個新列。這樣,您可以在登錄時檢查新列的空值,並在有權訪問明文密碼時保存新的哈希值。
如果可能,請使用PBKDF2或bcrypt。平原SHA-2速度太快。
如果你不能使用其中任何一個,那麼你至少應該遍歷SHA-256兩三千次密碼猜測攻擊減緩:
var hash = SHA256(SHA256(salt)+password)
for(int i=0; i<10000; i++)
hash = SHA256(hash);
return hash;
請記住,每個用戶都需要有一種不同的鹽,通常與密碼散列一起存儲。每個應用鹽是不夠的。
對於升級,我會使用舊的散列作爲新功能的輸入。這樣,現有的哈希會獲得升級的大部分安全性提升,而無需用戶登錄。不要保留舊的MD5散列。
然後在每個用戶的第一次登錄時,將他的哈希值升級到不再使用MD5的全新哈希值。
如果給出散列,即使使用MD5,仍然很難找到生成該散列的相應字符串。通常使用反向查找表或暴力破解散列,通過向輸入添加新字母來快速降低概率,因此將長隨機鹽連接到密碼已足夠。 – Calmarius 2015-05-30 14:24:50
- 1. 從簡單MD5認證遷移到OpenLDAP
- 2. 從md5更改爲sha256
- 3. 如何從定製加密遷移到Devise?
- 4. AES加密,SHA256
- 5. 密碼遷移 - Drupal SHA2到PHP MD5版本
- 6. 如何將Java MD5加密代碼移植到Python中?
- 7. 從Laravel 5.2遷移加密密鑰到5.3
- 8. NodeJS - SHA256密碼加密
- 9. 在erlang sha256加密
- 10. 從md5移動到PBKDF2如何?
- 11. 密碼從Drupal遷移到Yii
- 12. 從設計密碼遷移到java
- 13. 從Django到Mysql的密碼遷移
- 14. 將SSH密鑰從Linux遷移到Mac
- 15. 遷移密碼加密模式
- 16. mysql的密碼()加密的密碼到Oracle遷移
- 17. NIS yppasswd哈希從crypt到md5的遷移
- 18. 如何將密碼從md5轉換成laravel加密方法
- 19. 如何將用戶的密碼從yii 1遷移到yii 2
- 20. 如何從自定義主鍵遷移到默認密碼
- 21. MD5加密與密鑰
- 22. 在md5中加密密碼?
- 23. 加密和解密md5
- 24. 如何從Google電子郵件遷移API遷移到Gmail API?
- 25. 如何將數據從SQL Server 2008遷移/遷移到ORACLE 11g?
- 26. 鹽+ SHA512 + MD5加密
- 27. 從MD5更改PostgreSQL密碼加密到SHA
- 28. 如何讓oracle db支持md5加密?
- 29. 如何使用MD5加密字符串?
- 30. 使用不同的加密方式遷移密碼(CubeCart到Prestashop)
當你在這裏,你可能想遷移到PBKDF2和鹽。您將不得不存儲salt和PBKDF2結果而不是密碼。 SHA-256(這是一種安全散列,不是一種加密類型)仍然可以用於彩虹表等。 – 2012-03-05 22:24:32
有趣!是否有任何vbscript(經典的asp)基於鹽的PBKDF2實現? – afazolo 2012-03-06 01:11:42
在谷歌的幫助下,我瞭解到,我可以爲每個用戶使用隨機生成的字符串作爲鹽。要檢查用戶提供的密碼是否有效,我會結合Salt提供的密碼,取出散列,並將其與存儲在數據庫中的散列進行比較,對吧?我的問題是:一個鹽可以是一個MD5加密字符串? – afazolo 2012-03-06 03:27:36