2011-11-02 80 views
0

我正在尋找一些關於在我的ColdFusion/MySQL應用程序中加密/解密密碼的最佳方式的幫助/建議。我應該使用MD5,SHA,BCrypt嗎?我應該直接在MySQL中進行加密還是使用ColdFusion來處理它?使用ColdFusion和MySQL密碼加密

只是尋找一些幫助,這個和一些例子讓我去。

安全性對於此應用程序非常重要,因爲我們將存儲敏感信息。

任何幫助將是偉大的。

在此先感謝。

+0

通過在您的加密中使用SALT,您可以進一步提高安全性。另外看看這個問題[在數據庫中存儲密碼](http://stackoverflow.com/questions/615704/preferred-method-of-storing-passwords-in-database) – jan

回答

1

如果你想要密碼是安全的,一定不要使用MD5,因爲它可以被破解。不推薦SHA-1。

它的安全在CF至少使用SHA-256,比如像這樣:

variables.hashedPassword = Hash(variables.Password,"SHA-256"); 

至於選擇在哪裏做加密 - 這取決於究竟你想用它,一次加密的密碼數量等。如果僅僅是一次,那並不重要。

0

我用ColdFusion做我所有的加密/解密。 ColdFusion使它非常容易。我通常使用Blowfish加密並使ColdFusion產生關鍵價值。然後將其設置爲Application.cfm文件中的靜態值。

這是更多信息:Enrypt()

0

你很關心你的密碼的強哈希。我會建議使用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應用程序中使用。

最後,雖然我知道你的問題具體提到了用戶密碼的強密碼,但取決於你存儲的數據的敏感性,你也可能想要認真考慮在數據庫中靜止時加密敏感數據,好。這樣,如果您的數據受到損害,您可以輕鬆休息一下,知道它在休息時被加密(除非您的密鑰也被破壞,但是您希望將它存儲在與應用程序所在的實際數據庫不同的位置)進入)。