gpt4 book ai didi

asp-classic - 使用 CAPICOM 进行哈希和加盐?使用 asp-classic 的 SHA 512

转载 作者:行者123 更新时间:2023-12-04 05:35:05 25 4
gpt4 key购买 nike

我想知道这种方法是否可以安全地用于登录,因为这是我发现的唯一一种易于理解的方法,并且它是 asp-classic,因此我是一个菜鸟可以理解并添加到我拥有的站点。

谢谢

    <%
Dim sDigest,sPassword,sSalt
sDigest=SHA256(sRndStr)


sPassword = Request.Form("pass")
sSalt = Request.Form("username") & "SomeThingThatisStatic1234567890"

With CreateObject("CAPICOM.HashedData")
.Algorithm = 6 '<--- This will use SHA-512
'CAPICOM_HASH_ALGORITHM_SHA1 = 0
'CAPICOM_HASH_ALGORITHM_MD2 = 1
'CAPICOM_HASH_ALGORITHM_MD4 = 2
'CAPICOM_HASH_ALGORITHM_MD5 = 3
'CAPICOM_HASH_ALGORITHM_SHA_256 = 4 - Not supported on Windows XP or 2000
'CAPICOM_HASH_ALGORITHM_SHA_384 = 5 - Not supported on Windows XP or 2000
'CAPICOM_HASH_ALGORITHM_SHA_512 = 6 - Not supported on Windows XP or 2000

.Hash sPassword & sSalt

'Response.Write "Here is your hash: " & .Value
'---> here i would then check this hash with the hash in the database
'---> and if it's the same let the user login if not go to error: wrong info.
End With
%>

最佳答案

除非我错过了一些相当重要的东西,否则它看起来并不是特别安全。特别是,看起来您正在通过连接发送盐/密码的哈希值,并在服务器上进行验证。如果是这样,它就容易受到重放攻击——即,有人进入对话,查看用户响应登录的内容,然后通过发送相同的响应以这些凭据登录。对密码进行散列/加盐可以防止他们知道用户的原始密码,但他们不在乎——知道散列,这就是服务器检查让他们登录的全部内容。

为避免这种情况,您通常希望使用质询/响应设置:

  • 用户发送消息说他们想登录
  • 服务器生成一个随机数并发送给用户
  • 客户端使用散列/加盐密码作为 key 对随机数进行加密,并将结果与​​用户名
  • 一起发送回服务器。
  • 服务器使用该用户的散列/加盐密码
  • 进行相同的加密。
  • 服务器比较两个加密后的数字

  • 每次用户尝试登录时,服务器都会生成一个新的/不同的随机数。即使有人从较早的登录中获得了数据包,他们也不会让 spy 再次登录。

    关于asp-classic - 使用 CAPICOM 进行哈希和加盐?使用 asp-classic 的 SHA 512,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12058933/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com