我正在研究Apple在"证书,密钥和信任编程指南"中提供的数据加密示例代码.加密/解密数据的示例代码考虑了uint8_t.然而,真实世界的应用程序将在NSString对象上执行此操作.我一直在尝试将NSString对象转换为uint8_t,但每次我收到编译器警告.在各种论坛中给出的"几乎"相同问题的解决方案似乎对我没有用.
Joe*_*Joe 15
以下是将任何字符串值转换为a的示例uint8_t*.最简单的方法是将NSData的字节转换为uint8_t*.其他选项是分配内存并复制字节,但仍需要以某种方式跟踪长度.
NSData *someData = [@"SOME STRING VALUE" dataUsingEncoding:NSUTF8StringEncoding];
const void *bytes = [someData bytes];
int length = [someData length];
//Easy way
uint8_t *crypto_data = (uint8_t*)bytes;
Run Code Online (Sandbox Code Playgroud)
//If you plan on using crypto_data as a class variable
// you will need to do a memcpy since the NSData someData
// will get autoreleased
crypto_data = malloc(length);
memcpy(crypto_data, bytes, length);
//work with crypto_data
//free crypto_data most likely in dealloc
free(crypto_data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8997 次 |
| 最近记录: |