iOS|iOS RSA加密提升篇(分段加密)
昨天有人问我加密字符串长度超过117位就会崩溃,该怎么搞,说实话我当时都懵逼了。
- 这篇博文有比较好的解释@Defonds。
- 不管明文长度是多少,RSA 生成的密文长度总是固定的。但是明文长度不能超过密钥长度。比如 Java 默认的 RSA 加密实现不允许明文长度超过密钥长度减去 11(单位是字节,也就是 byte)。也就是说,如果我们定义的密钥(我们可以通过 java.security.KeyPairGenerator.initialize(int keysize) 来定义密钥长度)长度为 1024(单位是位,也就是 bit),生成的密钥长度就是 1024位 / 8位/字节 = 128字节,那么我们需要加密的明文长度不能超过 128字节 -11 字节 = 117字节。也就是说,我们最大能将 117 字节长度的明文进行加密,否则会出问题(抛诸如 javax.crypto.IllegalBlockSizeException: Data must not be longer than 53 bytes 的异常)。
- 同样的道理iOS加密也会有这个问题。
【iOS|iOS RSA加密提升篇(分段加密)】--------------------->这是Demo链接<---------------------
推荐阅读
- 对称加密和非对称加密的区别
- 2020-04-07vue中Axios的封装和API接口的管理
- Android中的AES加密-下
- iOS中的Block
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- 2019-08-29|2019-08-29 iOS13适配那点事
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- iOS面试题--基础
- 接口|axios接口报错-参数类型错误解决
- iOS|iOS 笔记之_时间戳 + DES 加密