首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CAPICOM进行哈希和加盐?SHA 512使用asp-classic

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

Stack Overflow用户
提问于 2012-08-22 00:09:00
回答 1查看 1.5K关注 0票数 2

我想知道这种登录方法是否安全,因为这是我发现的唯一一种易于理解的方法,而且它是asp经典的,这样我一个新手就可以理解并添加到我的站点中。

谢谢

代码语言:javascript
复制
    <%
    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 
%>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-22 00:24:08

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

要避免这种情况,通常需要使用质询/响应设置:

  1. 用户发送一些内容表示他们想要登录
  2. 服务器生成一个随机数并将其发送给用户
  3. 客户端使用其哈希/加盐密码作为密钥对随机数进行加密,并将结果与其用户名一起发送回服务器
  4. 服务器对该用户的哈希/加盐密码进行相同的加密

H19服务器比较两个加密数字<代码>H210<代码>G211

每次用户尝试登录时,服务器都会生成一个新的/不同的随机数。即使有人拥有之前登录的数据包,他们也不会让间谍再次登录。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12058933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档