1、MD5
特点:不可逆,长度一定
缺点:不安全
2、MD5加盐
缺点:盐写在程序代码中,容易泄露
3、HMAC 加密算法
用途:实现设备锁
特点:长度一定
使用方法:秘钥一般从服务器获取(在注册的时候给客户端发送这个随机秘钥,服务器保存数据是账号、秘钥、还有加密后的密码。客户端保存服务器给的秘钥,保证这个秘钥和账号的一一对应关系,存在本地。)相对上面的方式更安全。
HMAC登录设备锁实现思路:
1、用户输入账号、密码
2、本地查找该账号对应的秘钥是否存在,如果没有,向服务器发送请求,获取该账号的秘钥,这个时候服务器会检查这个账号是否设置设备锁,如果设置了设备锁,向原来有设备锁的设备发送是否解锁的请求。
保护登录权限:为了防止黑客模拟,对于登录后权限很大的APP,我们需要保护用户登录权限,我们可以在对登录密码加密后,再拼接 年月日时分 ,此时服务器判断服务器当前时间或者上一分钟加密后的数据是否满足登录条件,这样黑客最多只有一分钟时间。加强了安全性。
4、可逆加密
在客户端存储密码,我们需要用到可逆加密
1、AES加密
保存位置:钥匙串访问(系统中)
钥匙串加密方式就是AES加密,可以将保存的密码以明文的方式反算
在工程中要使用钥匙串访问功能,需要打开功能,如下图: