javascript - 请教一下各位大神,http中get请求里面携带的password一般采用怎样的方式生成?

 oDavid_仔o_880 发布于 2022-11-13 10:47

我最近在测试一个别人写的APP,APP用户经常投诉说APP报告“密码错误”,但实际输入的密码是正确的,我发现该APP的密码是客户端通过HTTP的get请求送给服务器的,get里面的passsword字段是32位的加密(或者hash)后的字符串,我手里有个username、password和一个随机变量var,我比较感兴趣这个32位字符串一般是怎么生成的?有什么样的算法?谢谢了

2 个回答
  • 有加密函数,例如md5(),直接把需要加密的字符串放里就生成了

    2022-11-13 11:19 回答
  • 客户端算摘要,或使用对称加密都没啥意义。
    如果确实需要加密,需要考虑非对称加密,JavaScript 有 RSA 库。自己写 RSA 加密会比较麻烦,所以可以用明文密码+HTTPS 传输的办法来实现安全。

    不过密码在保存到数据库之前需要计算摘要(Hash),防止拖库窃取密码,常见的是MD5(128位)或者SHA1(160)位,为了不容易被彩虹表破解,通常会加入随机盐(Salt),用 HMAC 算法计算摘要,即 HMAC-MD5 或 HMAC-SHA1,不过这两个算法现在都比较容易破解,可以考虑 HMAC-SHA256 (256位) 或更高位数的摘要算法。如果是在国内做商密应用,应该使用商密办规定的 SM3 算法,但网上不容易找到可信的纯软件实现。

    2022-11-13 11:19 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有