我在 iOS 中使用 StringEncryption.m 库来加密消息,然后在 .Net 项目上对其进行解码。
对于 99.9% 的消息,加密/解密过程有效。但是,iOS 应用程序发送的特定消息始终会导致 .Net 项目出现“填充无效”错误。
问题消息的长度为 800 字节。如果我强制它为 799 或 801 字节,则加密/解密有效。
双方都使用 CBC,iOS 解决方案使用 PKCS7 填充。有任何想法吗?
我在 iOS 中使用 StringEncryption.m 库来加密消息,然后在 .Net 项目上对其进行解码。
对于 99.9% 的消息,加密/解密过程有效。但是,iOS 应用程序发送的特定消息始终会导致 .Net 项目出现“填充无效”错误。
问题消息的长度为 800 字节。如果我强制它为 799 或 801 字节,则加密/解密有效。
双方都使用 CBC,iOS 解决方案使用 PKCS7 填充。有任何想法吗?
遵循 Ramhounds 的指导并产生相同长度的不同消息。问题在于 iOS 上的加密库。
在这里找到答案:Encrypting 16 bytes of UTF8 with SecKeyWrapper break (ccStatus == -4304)