美文网首页iOS加密技术iOS开发技巧
iOS RSA 、DES、MD5三种加密方式结合使用

iOS RSA 、DES、MD5三种加密方式结合使用

作者: iOS_Job | 来源:发表于2016-08-09 18:20 被阅读864次

    概念解释:

    • 对称加密:

    需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密.

    优点:

    对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。

    缺点:

    在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了.

    • 非对称加密:

    非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。

    优点:

    与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。

    缺点:

    非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

    MD5:

    • 加密后不可逆(只能加密不可解密),我们用于加密用户的登录密码;

    DES:

    • 对称加密(服务器和客户端公用同一个秘钥),缺点:一旦被抓包破解了秘钥,就能破解所有的传递信息;

    RSA:

    • 非对称加密(会生成一对秘钥(公钥和私钥)), 通过MAC终端生成两个.pem文件,cat文件,获取里面的字符串(也就是秘钥);

    MAC上生成公钥、私钥的方法,及使用:

    • 打开终端,选择一个文件夹目录;

    • 输入指令:openssl;

    openssl是生成各种秘钥的工具,mac已经嵌入;

    • 输入指令:genrsa -out rsa_private_key.pem 1024 (生成私钥,服务端使用);

    • 输入指令:rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout (生成公钥);

    • 输入指令:pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt(私钥转格式,在ios端用这个私钥测试解密过程) ;

    应用场景:

    • 通过简单的URLENCODE + BASE64编码防止数据明文传输;

    • 对普通请求、返回数据,生成MD5校验(MD5中加入动态密钥),进行数据完整性(简单防篡改,安全性较低,优点:快速)校验;

    • 对于重要数据,使用RSA进行数字签名,起到防篡改作;

    • 对于比较敏感的数据,如用户信息(登陆、注册等),客户端发送使用RSA加密,服务器返回使用DES(AES)加密;

    客户端发送之所以使用RSA加密,是因为RSA解密需要知道服务器私钥,而服务器私钥一般盗取难度较大;如果使用DES的话,可以通过破解客户端获取密钥,安全性较低。而服务器返回之所以使用DES,是因为不管使用DES还是RSA,密钥(或私钥)都存储在客户端,都存在被破解的风险,因此,需要采用动态密钥,而RSA的密钥生成比较复杂,不太适合动态密钥,并且RSA速度相对较慢,所以选用DES)

    总结:

    • 密码加密用MD5,信息传递用RSA + DES

    首先移动端给服务器传递通过RSA公钥加密后的数据,参数包括DES的密钥(密钥是随机生成的八位字符串) 和 相关参数信息,服务器通过私钥解密信息数据,里面包括DES密钥和 相关参数信息,服务器再通过此DES密钥加密返回数据给移动端,移动端通过此DES密钥进行解密获取数据。优点:因为RSA不容易解密,即使被拦截解密了,获取了DES的密钥,因为DES的密钥是随机生成的,也只能解密这一次的数据信息,不会对其他数据信息产生影响。(注:DES的密钥每一次都要重新随机生成,也就是一个密钥只完成这一次的数据传递)

    (未完待续......)


    相关文章

      网友评论

      本文标题: iOS RSA 、DES、MD5三种加密方式结合使用

      本文链接:https://www.haomeiwen.com/subject/hkydsttx.html