Encryption 经典ASP中的密码加密方法

Encryption 经典ASP中的密码加密方法,encryption,asp-classic,Encryption,Asp Classic,我正在寻找一种方法来加密/解密密码在经典的ASP。有人能告诉我哪种方法好用,在经典ASP中有哪些可能的方法可以做到这一点。你可以在这里下载这个免费的经典ASP/VBScript脚本,它将字符串加密到SHA-256,这是一个行业标准的单向散列函数: 大多数人在密码加密后不会解密。这样做的目的是在数据库中存储一个不可逆的加密密码,如果攻击者试图访问您的数据库,则反过来阻止攻击者读取密码。当有人输入密码时,您对用户输入进行加密,并将其与数据库中的加密密码进行匹配 但是仅仅散列是不够安全的。您必须在要

我正在寻找一种方法来加密/解密密码在经典的ASP。有人能告诉我哪种方法好用,在经典ASP中有哪些可能的方法可以做到这一点。

你可以在这里下载这个免费的经典ASP/VBScript脚本,它将字符串加密到SHA-256,这是一个行业标准的单向散列函数:

大多数人在密码加密后不会解密。这样做的目的是在数据库中存储一个不可逆的加密密码,如果攻击者试图访问您的数据库,则反过来阻止攻击者读取密码。当有人输入密码时,您对用户输入进行加密,并将其与数据库中的加密密码进行匹配

但是仅仅散列是不够安全的。您必须在要散列的密码中添加一个SALT值,以使其不可破解。Salt应该是在散列之前添加到密码中的随机但唯一的密码,例如:

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

我为这个任务创建了一个COM互操作DLL——经典的ASP密码哈希。只需构建、注册DLL并从ASP调用它。这是使用AES256的早期工作版本,我计划在将来添加额外的算法支持

欢迎您的建议

经典ASP代码示例

newPassword = "whatever-the-user-typed"

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

寻找同样的东西。散列密码的整个概念让我意识到一些主要网站也必须使用解密方法。如果他们不以明文形式保存丢失的密码,或者没有解密密码的方法,他们还能用电子邮件发送丢失的密码吗


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

我已经创建了一个用于在经典ASP中哈希密码的函数类。除了使用MD5、SHA1、SHA256、SHA384或SHA512以及自动生成的盐和可选胡椒粉的标准散列函数外,还支持Argon2BcryptPBKDF2

标准的散列函数应该可以在大多数共享主机服务器上运行,其余的则需要安装我创建并上传到GitHub的COM DLL。此存储库概述并演示了所有内容:


我已经知道这一点,但应该有一种编程语言用于构建经典应用程序。@Emadali您的问题很可能是VBScript或JScript。您使用VBScript或JScript吗?我自己正在寻找单向散列,但在这种情况下,站点很可能是以纯文本形式存储密码。我的意思是,他们花时间和精力加密/解密数据库中的密码,然后通过未加密的电子邮件通道以明文形式发送?是的,我想他们是在不加密的情况下将它们存储在数据库中。应该会让你感到非常安全。:)谢谢这对我帮助很大!应该注意的是,这个例子使用的是。当散列密码时,像Bcrypt这样的慢散列比像SHA-256这样的快散列提供更多的保护。