美文网首页程序员
加密、解密、验签【附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