2011-09-26 441 views
5

我正在尋找一種在傳統ASP中加密/解密密碼的方法。有人可以向我建議哪種方法是好的,以及在傳統的ASP中做什麼的可能方法。經典ASP中的密碼加密方法

+2

_Hashing,not encryption_ – SLaks

+0

C#or vb.net ???? –

+0

@EmaadAli:ASP ** Classic ** – SLaks

回答

13

您可以在這裏下載這個免費的經典ASP/VBScript的腳本,加密的字符串SHA-256,行業標準的單向散列函數:

http://www.freevbcode.com/ShowCode.asp?ID=2565

大多數人都沒有解密密碼一旦它被加密。這個想法是在你的數據庫中存儲一個不可逆的加密密碼,這反過來會阻止攻擊者在管理員訪問數據庫時讀密碼。當有人輸入密碼時,您會對用戶輸入進行加密,並將其與數據庫中的加密密碼進行匹配。

但單獨的哈希不夠安全。您必須將SALT值添加到要散列的密碼,以使其不可破解。鹽應該是被散列之前加入到密碼,例如隨機的,但唯一的密碼:

password = Request("password") 
salt = "2435uhu34hi34" 
myHashedPassword = SHA256_function(password&salt) 
+0

謝謝!這幫了我很多! – janlindso

+0

應該指出,這個例子是使用[胡椒,而不是鹽](http://blog.ircmaxell.com/2012/04/properly-salting-passwords-case-against.html)。 –

0

我創建了一個COM互操作DLL的這種精確的任務 - 經典ASP中的密碼哈希。只需構建,註冊DLL並從ASP調用它。這是一個使用AES256的早期工作版本,我計劃在未來增加額外的算法支持。

https://github.com/kingdango/SaltedHashPassword

建議表示歡迎!

傳統的ASP代碼示例

newPassword = "whatever-the-user-typed" 

set passwordGenerator = Server.createObject("Kingdango.SaltedHashPassword.PasswordHash") 
passwordGenerator.Password = newPassword 
newPasswordSaltedHash = passwordGenerator.GetHashedPassword() 
newPasswordSalt = passwordGenerator.Salt 
0

尋找同樣的事情。哈希密碼的整個概念使我意識到,那裏的一些主要網站也必須使用解密方法。如果他們沒有以明文形式保存,或者有解密方法,他們還可以通過電子郵件發送密碼。

編輯:我想我找到了答案here-數據庫列級加密。

+2

我自己尋找單向散列,但在這種情況下,網站以純文本格式存儲密碼的可能性很大。我的意思是,他們花費時間和精力在數據庫中加密/解密密碼,但是通過未加密的電子郵件渠道清楚地發送它?是的,我認爲他們將它們存儲在數據庫中而沒有加密。應該讓你感覺很安全。 :) – Dave