美文网首页
iOS加密--AES(CBC)和RSA组合加密(避坑)

iOS加密--AES(CBC)和RSA组合加密(避坑)

作者: 我以我嬉笑见众生 | 来源:发表于2020-09-01 11:59 被阅读0次

遇到的坑

项目中使用AES(CBC)和RSA组合进行加密,但是一直存在加密之后的数据,服务端无法解析,比例小但却是个问题。翻阅过很多资料之后发现以下几个问题:

1、RSA加密,线程不安全;

2、网上绝大部分的RSA加解密的秘钥存储在keychain中,但是keychainTag名却都是一模一样的,在你的项目导入的SDK含有的RSA加解密算法的keychainTag和你项目中一致时,会存在加解密失败的情况(在对接讯飞广告SDK4.1.2版本时,发现对方的广告解密失败,原因是解密的keychainTag一致);

3、AES/CBC模式加密对key的长度有要求,一般来说key的长度为16位时,使用的是CCCryptorStatus中的size_t使用kCCKeySizeAES256加密,大于16位时,使用kCCKeySizeAES256加密。

解决问题

话不多说直接上代码

代码链接:代码链接

1、RSA加密线程不安全问题和keychainTag名

加密 解密

2、AES/CBC模式加密key的长度判断

加密 解密

经过两个版本的迭代,服务端的同事不再找我麻烦了,舒服!

相关文章

  • iOS加密--AES(CBC)和RSA组合加密(避坑)

    遇到的坑 项目中使用AES(CBC)和RSA组合进行加密,但是一直存在加密之后的数据,服务端无法解析,比例小但却是...

  • aes cbc加密

    aes 128 cbc加密 aes 256 cbc加密

  • AES+128+CBC数据加密 IOS及PHP

    AES+128+CBC 加密 注释:128加密算法长度 CBC加密方式 一.iOS写法如下 1.新建类目文件AE...

  • app与server通信加密

    [toc] 使用的加密算法及作用 RSA 非对称加密,做密钥分发 AES/CBC/PKCS5Padding 对称...

  • Java加密

    MD5加密: RSA加密: CBC加密:

  • iOS-15 加密

    1iOS 常用加密方式讲解 - 简书 2iOS加密方式(RSA签名、加密、AES) - 简书

  • iOS 关于加密

    常见的iOS代码加密常用加密方式包括Base64加密、MD5加密、AES加密、RSA加密等。 Base64加密 B...

  • hls视频的加解密示例

    加密 hls的加密采用aes-128-cbc, 关于aes-128-cbc, 请参考前文使用openssl命令加解...

  • 加解密AES128 CBC NoPadding

    加密 AES128 CBC NoPadding 将加密好的数据转成16进制的字符 解密AES128 CBC NoP...

  • AES加密解密

    AES加密 相比于其他加密,AES加密似乎模式很多,包括ECB、CBC等等等等,每个模式又包括IV参数和Paddi...

网友评论

      本文标题:iOS加密--AES(CBC)和RSA组合加密(避坑)

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