先普及下基础知识, pfx是公钥加密技术12号标准(Public Key Cryptography Standards #12,PKCS#12)为存储和传输用户或服务器私钥、公钥和证书而指定的一个可移植的格式。它是一种二进制格式,这些文件也称为PFX文件。详见百科
我的pfx文件是由写C++的同事提供, 里面包含秘钥, 使用的时候需要先读取里面的数据,然后对数据进行base64编码,最后获得字符串
第一步, 将文件拖入工程
第二步, 获取文件路径
第三步, 转换
第一步, 拖入工程目录如下:
第二步, 获取文件路径:
这一步需要注意了,获取文件路径的时候不要偷懒使用这种方式
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"myp12.pfx" ofType:nil];
要使用
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"myp12" ofType:@"pfx"];
否则是获取不到该文件路径的!
第三步, 转换
// * 转data
// NSData *fileData = [NSData dataWithContentsOfFile:filePath];
NSFileHandle* fh = [NSFileHandle fileHandleForReadingAtPath:filePath];
NSData *fileData = [fh readDataToEndOfFile];
// * 输出
NSString *encodeString = [fileData base64EncodedStringWithOptions:0];
char *cString = (char *)[encodeString UTF8String];
其中encodeString, cString就是转换后的结果, encodeString对应OC字符串, cString对应C字符串.