我正在寻找一种在经典ASP中加密/解密密码的方法。有人可以告诉我哪种方法很好,有什么方法可以在经典的ASP中做到这一点。
答案 0 :(得分:13)
你可以在这里下载这个免费的经典ASP / VBScript脚本,它将字符串加密为SHA-256,这是一种行业标准的单向散列函数:
http://www.freevbcode.com/ShowCode.asp?ID=2565
大多数人在加密后都不会解密密码。我们的想法是在您的数据库中存储一个不可逆的加密密码,如果管理到达您的数据库,这又会阻止攻击者读取密码。当有人输入密码时,您会加密用户输入并将其与数据库中的加密密码进行匹配。
但仅靠哈希并不够安全。您必须将SALT值添加到要哈希的密码,以使其牢不可破。 Salt应该是一个随机但唯一的密码,在散列之前会被添加到密码中,例如:
password = Request("password")
salt = "2435uhu34hi34"
myHashedPassword = SHA256_function(password&salt)
答案 1 :(得分:0)
我为这个确切的任务创建了一个COM-interop DLL - Classic ASP Password Hashing。只需构建,注册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
答案 2 :(得分:0)
寻找同样的事情。哈希密码的整个概念让我意识到一些主要网站也必须使用解密方法。如果他们没有以明文形式保存密码或者有解密密码的方法,他们还可以通过电子邮件发送丢失的密码。
编辑:我想我找到了答案here - 数据库列级加密。
答案 3 :(得分:0)
我创建了一类用于在Classic ASP中对密码进行哈希处理的函数。除了使用MD5,SHA1,SHA256,SHA384或SHA512的标准哈希函数以及自动生成的盐和可选的Pepper之外,还支持 Argon2 , Bcrypt 和 PBKDF2
标准散列函数应在大多数共享托管服务器上起作用,其余的则需要安装我创建并上传到GitHub的COM DLL。在此存储库中概述并演示了所有内容: