用户密码校验方案 终端设备校验方案 弱密码表 API鉴权方案
- 2018-12-01 23:21:00
- admin
- 原创 2410
一、用户密码校验方案
1、服务端比对客户端发送的密码hash和本地存储的密码hash;
2、客户端根据密码和服务器返回的随机数进行哈希运算,服务器比对哈希运算结果,比如Windows的NTLM算法;
二、终端设备校验方案
设备管理端可以使用设备密钥和应用密钥分别分发有时间限制的会话密钥,这样设备和应用可以通过会话密钥进行通信;
三、弱密码表
1、开源弱密码表:https://github.com/angel123123/Blasting_dictionary
2、弱密码表:weakpasswd.txt,一共75810条;
3、弱PIN表:weakpin.txt,一共1573条;
4、处理代码:getWeakPIN.py
5、8个常用密码特殊字符[=.-_+!#@],6个常用数据库密码特殊字符[=.-_+!]
简单处理弱PIN:
1、包含少于或等于两种数字;
2、六个相同的数字,共10个;
3、六个顺序增长的数字,共5个;
4、六个倒序增长的数字,共5个;
5、123321,123123,111222,222111,520131,521131,201314,211314,520520,521521,共10个;
四、API鉴权方案
经典API调用鉴权:Date格式化到天可以保证一天一个工作密钥
StringToSign = SHA256(AppId+Algorithm+Timestamp+Request)
WorkingSecret = HMAC(SecretKey,Algorithm+Service+Date)
Signature = HMAC(WorkingSecret,StringToSign)
微信授权登录:
1、网页使用微信授权:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html
2、网页使用企业微信授权:https://open.work.weixin.qq.com/api/doc/90000/90135/91020
3、APP使用企业微信授权:https://developer.work.weixin.qq.com/document/path/91194
4、微信用户登录态换取微信授权Code,授权码只能使用一次,并且5分钟内有效,使用https进行传输;
5、通过Code、AppId、AppSecret获取access_token,access_token过期需要主动调用接口刷新,使用https进行传输;
6、应用不能完全信任微信,我们假定微信也会作恶,需要使用其他身份鉴别方式首次激活;