请教一下各位大神,http中get请求里面携带的password一般采用怎样的方式生成? -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

杨冬芳 2016-06-23 11:16:39 1252

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

算法 数据安全/隐私保护
分享到
取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:46:02

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

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

    0 0
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

推荐文章
相似问题