我正在尋找一些關於在我的ColdFusion/MySQL應用程序中加密/解密密碼的最佳方式的幫助/建議。我應該使用MD5,SHA,BCrypt嗎?我應該直接在MySQL中進行加密還是使用ColdFusion來處理它?使用ColdFusion和MySQL密碼加密
只是尋找一些幫助,這個和一些例子讓我去。
安全性對於此應用程序非常重要,因爲我們將存儲敏感信息。
任何幫助將是偉大的。
在此先感謝。
我正在尋找一些關於在我的ColdFusion/MySQL應用程序中加密/解密密碼的最佳方式的幫助/建議。我應該使用MD5,SHA,BCrypt嗎?我應該直接在MySQL中進行加密還是使用ColdFusion來處理它?使用ColdFusion和MySQL密碼加密
只是尋找一些幫助,這個和一些例子讓我去。
安全性對於此應用程序非常重要,因爲我們將存儲敏感信息。
任何幫助將是偉大的。
在此先感謝。
SHA-256或更高鹽或BCrypt。
我會在CF層做它,因爲代碼將被源代碼控制。
http://blog.mxunit.org/2011/02/hashing-passwords-with-bcrypt-in.html
http://www.12robots.com/index.cfm/2008/5/21/Salting-Passwords-Security-Series-4.3
如果你想要密碼是安全的,一定不要使用MD5,因爲它可以被破解。不推薦SHA-1。
它的安全在CF至少使用SHA-256,比如像這樣:
variables.hashedPassword = Hash(variables.Password,"SHA-256");
至於選擇在哪裏做加密 - 這取決於究竟你想用它,一次加密的密碼數量等。如果僅僅是一次,那並不重要。
我用ColdFusion做我所有的加密/解密。 ColdFusion使它非常容易。我通常使用Blowfish加密並使ColdFusion產生關鍵價值。然後將其設置爲Application.cfm文件中的靜態值。
這是更多信息:Enrypt()。
你很關心你的密碼的強哈希。我會建議使用scrypt庫。科林·珀西瓦爾(Colin Percival)發明了它用於tarsnap,他在tarsnap網站上提供了一個很好的scrypt比較(對不起,因爲代表< 10,不能發佈超過兩個鏈接)到其他知名和強大的PBKDFs bcrypt和PBKDF2,從技術角度回答了爲什麼scrypt可能比其他PBKDF更有優勢的問題。
我一般對使用加密技術時尚不夠謹慎,這種加密技術還沒有被加密,並且經過加密社區的審查。因此,我對使用scrypt有一些保留,因爲它在這方面還是比較「新」的。我諮詢安全專家Steve Gibson關於通過Twitter的問題,這是他的回答:
@SGgrc任何關於使用bcrypt的VS scrypt爲PBKD爲Web aplication想法? [原文]
@geekmuse SCrypt更強烈抵制硬件加速比 BCrypt。所以我會說,如果您的應用程序可以使用它,請使用它。 :)
@SGgrc會做 - 並感謝您的信息!我唯一的猶豫是 似乎加密社區審查不夠徹底。
@geekmuse明白了,在加密中,保守從來不是 錯誤。但目前,SCrypt是最好的內存硬解 可用。
此外,ColdFusion的內置加密(企業版,至少)使用RSA BESAFE的圖書館,這是現在強烈懷疑因受到損害到美國國家安全局(取決於PRNG一個用途,但仍... ),所以你通過查看一些最近發佈的算法來做正確的事情。
在Github上有一個基於Java的scrypt實現(github.com/wg/scrypt),它應該非常適合在ColdFusion應用程序中使用。
最後,雖然我知道你的問題具體提到了用戶密碼的強密碼,但取決於你存儲的數據的敏感性,你也可能想要認真考慮在數據庫中靜止時加密敏感數據,好。這樣,如果您的數據受到損害,您可以輕鬆休息一下,知道它在休息時被加密(除非您的密鑰也被破壞,但是您希望將它存儲在與應用程序所在的實際數據庫不同的位置)進入)。
通過在您的加密中使用SALT,您可以進一步提高安全性。另外看看這個問題[在數據庫中存儲密碼](http://stackoverflow.com/questions/615704/preferred-method-of-storing-passwords-in-database) – jan