美文网首页程序员
加密、解密、验签【附iOS端demo】

加密、解密、验签【附iOS端demo】

作者: 大泡砸吃火腿肠 | 来源:发表于2020-08-05 11:56 被阅读0次

    个人搭建的博客,欢迎访问:
    https://www.pphtc.com/work.html
    iOS端demo,对加密解密验签进行了封装:
    https://github.com/1552612373/YCSecurity

    数据传输安全解决方案:加密解密和验签

    公钥加密,私钥解密。私钥签名,公钥验签。


    非对称加密(比如RSA):

    简单解释:加密解密用的是不同的密钥,实际上是一对密钥,即公钥、私钥。

    特点:加密解密速度较慢,但更加安全。


    对称加密(比如AES):

    简单解释:加密解密用的是同一密钥。

    特点:加密解密速度快。


    常用思路:

    加密
    1. 用AES(对称加密)报文,因为报文可能很大,对称加密速度快。
    2. 然后用RSA私钥 对AES的密钥进行加密。此步骤,对方解密的数据其实是AES等密钥,大小有限,所以对速度要求不大。
    3. 再对密文加上验证签名比如hmac,为的目的是进一步验证身份。(hmac的密钥也用aes加密后传输)
    4. 对以上数据等拼起来进行传输。
    解密
    1. 接收方先通过RSA公钥解出AES的密钥 和 hmac的密钥。
    2. 然后再用AES的密钥解密得到明文
    3. 对密文用hmac的key进行签名,进行对比,一致则验签通过,身份合法。

    无论是服务端或是客户端,都可以用此方式进行加密解密。

    双方协商后只需要有两对RSA公钥私钥,分别用来加密解密。

    注意:私钥绝不能外泄!

    相关文章

      网友评论

        本文标题:加密、解密、验签【附iOS端demo】

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