经典ASP中的密码加密方法

5

我正在寻找一种在经典ASP中加密/解密密码的方法。请问有哪些好的方法可供使用?有哪些可能的方式可以实现这个目标呢?


我知道这个,但是你应该使用一种编程语言来构建经典应用程序。 - Emaad Ali
@EmaadAli 你的问题可能需要使用VBScript或JScript。 - Doozer Blake
你是使用VBScript还是JScript? - Emaad Ali
4个回答

14
您可以从这里下载免费的Classic ASP/VBScript脚本,该脚本将字符串加密为SHA-256,这是一种行业标准的单向哈希函数: http://www.freevbcode.com/ShowCode.asp?ID=2565 大多数人不会解密一旦被加密的密码。这个想法是在您的数据库中存储一个不可逆转的加密密码,以此来阻止攻击者读取密码。当有人输入密码时,您会将其加密,并将其与数据库中的加密密码进行匹配。
但是仅使用哈希不足够安全。您必须为要哈希的密码添加SALT值,以使其无法破解。盐应该是一个随机但唯一的密码,在对密码进行哈希之前将其添加到密码中,例如:
password = Request("password")
salt = "2435uhu34hi34"
myHashedPassword = SHA256_function(password&salt)

谢谢!这对我帮助很大! - janlindso
1
需要注意的是,这个例子使用的是辣椒,而不是盐 - Taylor Buchanan
在哈希密码时,像Bcrypt这样的慢哈希比SHA-256这样的快哈希提供更多的保护。 - Mike Poole

2
我已经创建了一个用于在 Classic ASP 中哈希密码的函数类。除了使用 MD5、SHA1、SHA256、SHA384 或 SHA512 和自动生成的盐和可选的辣椒的标准哈希函数外,还支持 Argon2、Bcrypt 和 PBKDF2。

标准哈希函数应该可以在大多数共享托管服务器上运行,其余需要安装 COM DLL,我已经创建并上传到 GitHub。这个存储库中概述和演示了所有内容:

https://github.com/as08/ClassicASP.PasswordHashing


0
我为这个具体任务创建了一个COM-interop DLL——Classic 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

我也在寻找同样的东西。哈希密码的整个概念让我意识到,一些主要的网站肯定也在使用解密方法。否则,如果他们不将密码以明文形式保存或者没有解密的方法,他们怎么能通过电子邮件发送丢失的密码呢?

编辑:我想我在这里找到了答案——数据库列级加密。


2
我正在寻找一种单向哈希算法,但在这种情况下,很有可能该网站以明文形式存储密码。我的意思是,他们花费时间和精力在数据库中加密/解密密码,但随后通过未加密的电子邮件通道以明文形式发送密码?是的,我认为他们将密码存储在没有加密的数据库中。这应该会让你感到非常安全。 :) - Dave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接