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

查看:78
本文介绍了javascript - 请教一下各位大神,http中get请求里面携带的password一般采用怎样的方式生成?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

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

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

这篇关于javascript - 请教一下各位大神,http中get请求里面携带的password一般采用怎样的方式生成?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆