经典ASP中的密码加密方法

经典ASP中的密码加密方法

问题描述:

我正在寻找一种在传统ASP中加密/解密密码的方法。有人可以向我建议哪种方法是好的,以及在传统的ASP中做什么的可能方法。经典ASP中的密码加密方法

+2

_Hashing,not encryption_ – SLaks

+0

C#or vb.net ???? –

+0

@EmaadAli:ASP ** Classic ** – SLaks

您可以在这里下载这个免费的经典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)。 –

我创建了一个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 

寻找同样的事情。哈希密码的整个概念使我意识到,那里的一些主要网站也必须使用解密方法。如果他们没有以明文形式保存,或者有解密方法,他们还可以通过电子邮件发送密码。

编辑:我想我找到了答案here-数据库列级加密。

+2

我自己寻找单向散列,但在这种情况下,网站以纯文本格式存储密码的可能性很大。我的意思是,他们花费时间和精力在数据库中加密/解密密码,但是通过未加密的电子邮件渠道清楚地发送它?是的,我认为他们将它们存储在数据库中而没有加密。应该让你感觉很安全。 :) – Dave