第一类:密码类的数据,为了让用户放心注册,密码类的数据的加密一般都是经过双重加密的,第一重加密使用不可逆的MD5算法加密,第二重加密是可逆的加密,常见的可逆加密有对称加密和非对称加密。上述不可逆的意思就是一旦加密就不能反向得到密码原文,一般用来加密用户密码,app的服务器端一般存储的也都是密文密码,不然用户就太危险了,app的运营商也承担不起这么大的责任。虽然现在MD5加密生成的密文也可以破解了,但是我们不需要担心,因为我们可以采用多重加密方式来应对。在数据传输的过程中,首先把密码类数据经过MD5加密算法加密,然后再在外面使用可逆的加密方式加密一次,这样在数据传输的过程中,即便数据被截获了,但是想要完全破解,还是很难的(本来就不存在完全不能解密的加密)。
密码类前端先要进行MD5不可逆加密,然后再进行可逆加密,后端拿到数据后先解密处理,然后直接存储密文密码,服务器直接存储明文密码的行为太危险。
用户身份确认,以及防止数据被篡改。
结论
style1
加密主要是针对密码类的数据加密和非密码类的数据加密,对密码类的数据加密主要工作是防止泄露、保护隐私,因此前端、后端以及传输过程都不要明文密码;对非密码类的加密主要是工作是身份确认、参数是否被篡改以及防止重复提交请求。
明文密码加 salt MD5后再用于传输与保存,加 salt 为了提高MD5的安全性,防止暴力破解。每个用户的salt值最好都要是不一样。
登陆成功后获取后台返回的secretKey,用secretKey与参数经过算法生成sign,服务器也用同样的方式拿到sign,对比,确认对方身份以及参数是否被更改。
style2
非对称加密传输密码、对称加密的秘钥等重要信息
对称加密传输非数据类信息
加密方式
可逆:DES(对称式加密) RSA(非对称加密)
不可逆:MD5