Zac*_*ach 115 sqlite iphone openssl nsdata ios
我将openssl私钥EVP_PKEY存储为nsdata.为此,我使用下面的代码序列化为字节流
unsigned char *buf, *p;
int len;
len = i2d_PrivateKey(pkey, NULL);
buf = OPENSSL_malloc(len);
p = buf;
i2d_PrivateKey(pkey, &p);
Run Code Online (Sandbox Code Playgroud)
其中pkey的类型为EVP_PKEY.然后我使用下面给出的行将缓冲区'p'中的字节存储为NSData
NSData *keydata = [NSData dataWithBytes:P length:len];
Run Code Online (Sandbox Code Playgroud)
现在我使用下面给出的代码将它转换为NSString但是当我将它打印到控制台时它会给出一些其他字符.
NSString *content =[ NSString stringWithCString:[keydata bytes] encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
基本上我想将EVP_PKEY存储到sqlite数据库中
我在正确的轨道上吗?谢谢.
lou*_*uio 254
Objective-C的
你可以使用(参见NSString类参考)
- (id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding
Run Code Online (Sandbox Code Playgroud)
示例:
NSString *myString = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
注:请注意该NSData值必须对指定的编码有效(上例中为UTF-8),否则nil将返回:
之前的Swift 3.0
String(data: yourData, encoding: NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)
Swift 3.0
String(data: yourData, encoding: .utf8)
Run Code Online (Sandbox Code Playgroud)
请参见String#init(data:encoding :)参考
pie*_*e23 23
之前的Swift 3.0:
String(data: yourData, encoding: NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)
对于Swift 4.0:
String(data: yourData, encoding: .utf8)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
166649 次 |
| 最近记录: |