文章來源:http://blog.csdn.net/u010983974/article/details/51728592
感謝博主:美洋洋嫁給灰太狼??
文章聲明:若此文章對您造成影響,請聯系我盡快刪除!
app嵌入支付寶SDK需要RSA秘鑰执隧,按照支付寶的教程https://help.alipay.com/support/help_detail.htm?help_id=397433&sh=Y&tab=null&info_type=9制作RSA秘鑰現在記錄一下這個過程忿等。
mac上自帶了openssl工具旭咽,所以我們直接打開terminal終端輸入openssl就可以開始生成了聊训。
1倔喂、新建一個文件夾作為存放RSA秘鑰的路徑
2礁竞、在終端cd到這個目錄下,輸入openssl就開啟了就可以看到openssl命令了(如下圖)
3糖荒、按照支付寶的教程輸入第一行命令:“genrsa -out rsa_private_key.pem 1024”生成私鑰(如下圖)
4、輸入第二行命令:“pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt”回車模捂,可以看到PKCS8格式的私鑰(如下圖)
5捶朵、生成RSA公鑰輸入命令“rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem”并回車就可以看到生成結果(如下圖)
6、打開存儲文件夾可以看到對應的公鑰和私鑰
用文本編輯器打開私鑰將內容粘貼到支付寶sdk的私鑰中就可以了狂男。
原因:
真機調試iOS支付寶功能GDB出現 rsa_private read error : private key is NULL提示
調試iOS支付寶SDK的時候综看,運行demo,把
Partner(合作商戶 ID)
Seller(賬戶 ID)
RSA public key(支付寶公鑰)
RSA private key(商戶私鑰)
都放到plist文件了岖食,運行的時候红碑,報錯 rsa_private read error : private key isNULL
我確定的是RSA private key肯定是有的,調試了下
在
bio_private= BIO_new(BIO_s_file());
BIO_read_filename(bio_private,private_key_file_path);
rsa_private= PEM_read_bio_RSAPrivateKey(bio_private, NULL, NULL,"");
if(rsa_private != nil) {
這里,rsa_private 返回空析珊, private_key_file_path 這些值都是有的
解決方法:
將私鑰轉成PKCS8替換一下原私鑰即可
1羡鸥、生成私鑰pem, ?執(zhí)行命令openssl genrsa -out rsa_private_key.pem 1024
2、生成公鑰,執(zhí)行命令openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
3忠寻、將RSA私鑰轉換成PKCS8格式,命令執(zhí)行openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt PHP服務端語言讀取私鑰不需要PKCS8轉換惧浴。