APP与服务器传输数据的加密方式

第一类:密码类的数据,为了让用户放心注册,密码类的数据的加密一般都是经过双重加密的,第一重加密使用不可逆的MD5算法加密,第二重加密是可逆的加密,常见的可逆加密有对称加密和非对称加密。上述不可逆的意思就是一旦加密就不能反向得到密码原文,一般用来加密用户密码,app的服务器端一般存储的也都是密文密码,不然用户就太危险了,app的运营商也承担不起这么大的责任。虽然现在MD5加密生成的密文也可以破解了,但是我们不需要担心,因为我们可以采用多重加密方式来应对。在数据传输的过程中,首先把密码类数据经过MD5加密算法加密,然后再在外面使用可逆的加密方式加密一次,这样在数据传输的过程中,即便数据被截获了,但是想要完全破解,还是很难的(本来就不存在完全不能解密的加密)。

密码类前端先要进行MD5不可逆加密,然后再进行可逆加密,后端拿到数据后先解密处理,然后直接存储密文密码,服务器直接存储明文密码的行为太危险。

第二类数据:非密码类的数据,虽然这些数据也很重要,但是一般其他人截获了这些数据对他们意义不太大,这些数据我们一般采用可逆的加密方式加密,因为我们在服务器端还是需要这些数据的明文的,常用的可逆加密方法有:对称加密和非对称加密。何为对称加密?在对称加密算法中,数据发信方将明文和加密密钥一起经过特殊的加密算法处理后,使其变成复杂的加密密文发送出去,收信方收到密文后,若想解读出原文,则需要使用加密时用的密钥以及相同加密算法的逆算法对密文进行解密,才能使其回复成可读明文。在对称加密算法中,使用的密钥只有一个,收发双方都使用这个密钥,这就需要解密方事先知道加密密钥。非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。

用户身份确认,以及防止数据被篡改。

结论

style1

加密主要是针对密码类的数据加密和非密码类的数据加密,对密码类的数据加密主要工作是防止泄露、保护隐私,因此前端、后端以及传输过程都不要明文密码;对非密码类的加密主要是工作是身份确认、参数是否被篡改以及防止重复提交请求。
明文密码加 salt MD5后再用于传输与保存,加 salt 为了提高MD5的安全性,防止暴力破解。每个用户的salt值最好都要是不一样。
登陆成功后获取后台返回的secretKey,用secretKey与参数经过算法生成sign,服务器也用同样的方式拿到sign,对比,确认对方身份以及参数是否被更改。

style2

非对称加密传输密码、对称加密的秘钥等重要信息
对称加密传输非数据类信息

加密方式

可逆:DES(对称式加密) RSA(非对称加密)
不可逆:MD5

原文参考

  1. Android:客户端和服务器之间传输数据加密
  2. app后端设计(4)-- 通讯的安全性
  3. 移动APP该如何保存密码

你可能感兴趣的:(APP与服务器传输数据的加密方式)