先普及下基礎知識, 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字串.