Joh*_*n M 2 bytebuffer rsa nsdata ios
我已经根据 Apple Developer 网站上提供的示例在 iOS 应用程序中实现了公钥私钥 RSA 加密。
如果我加密并返回uint8_t cipherBuffer,然后从 中解密,它会完美地工作uint8_t cipherBuffer。但是我需要将加密数据存储到.xcdata模型中NSData。
我遇到的问题是在解密时可靠地将其转换uint8_t cipherBuffer为NSData和/或将其转换NSData回。uint8_t解密的数据似乎被截断。
这就是我将uint8_t加密缓冲区转换为NSData:
return [NSData dataWithBytesNoCopy:cipherBuffer length:BUFFER_SIZE];
Run Code Online (Sandbox Code Playgroud)
这就是我在解密时将加密数据转换NSData回缓冲区的方法:uint8_t
uint8_t *cipherBuffer = (uint8_t*)[cipherText bytes];
Run Code Online (Sandbox Code Playgroud)
谢谢 jgh 和乔迪;
我将加密方法更改为“malloc”缓冲区,并尝试了几种将字节写入的方法NSData,结果是:
return [NSData dataWithBytes:(const void *)cipherBuffer length:CIPHER_BUFFER_SIZE];
Run Code Online (Sandbox Code Playgroud)
最终解决问题的是改变我uint8_t在解密方法中创建的方式:
const uint8_t *cipherBuffer = (const uint8_t*)[data bytes];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10556 次 |
| 最近记录: |