iOS RSA加签 验签 与Java同步 pkcs8 pkcs1
先簡單介紹一下RSA。
1.加密、解密:使用公鑰對數據進行加密,通過私鑰對加密后的數據解密。
2.加簽、解簽:使用私鑰對數據進行簽名,通過加簽名的數據和公鑰進行數據驗證,以確認合法性。
網上RSA相關的代碼、文章有很多,這篇文章主要是提醒iOS開發者,注意pkcs8是用于java的,如果后端只給了你私鑰,你要先判斷一下這個私鑰匙是不是iOS支持的pkcs1。
后端給了我一個.pem 文件,我按照網上的方法,通過終端使用openssl命令生成.csr文件,在這一步報錯了,原因是這個.pem 文件密鑰格式是pkcs8。可以通過用文本編輯器打開這個.pem格式的文件,判斷一下密鑰的長度。在線計算字符串長度<< 點這里(注意刪除空格)。如果是按1024取模(通常都是1024),pkcs1格式的私鑰長度應該是824(包含回車)。如果是pkcs8的格式的密鑰長度為861。如果你的密鑰長度不是824,就說明它不是iOS支持的按1024取模的pkcs1格式,你需要轉換格式。
終端命令如下。
openssl pkcs8 -in pkcs8_private_key.pem -nocrypt -out pkcs1_private_key.pem轉換后你可以檢查一下,這個pkcs1文件的密鑰長度是不是824。
接下來就可以通過openssl生成 .csr -> .ctr -> .p12 ,這個步驟后邊會有,從別人那邊復制過來的。加簽的代碼我就不貼了,git上一大把,這篇文章主要是提醒iOS開發者,注意pkcs8與pkcs1的轉換。
轉換流程我走了一遍,可以看這里 >> pkcs8與pkcs1格式互轉。
openssl RSA 常用命令
一、使用openssl生成所需秘鑰文件
生成環境是在mac系統下,使用openssl進行生成,首先打開終端,按下面這些步驟依次來做:
注意:這一步會提示輸入國家、省份、mail等信息,可以根據實際情況填寫,或者全部不用填寫,直接全部敲回車.
?
總結
以上是生活随笔為你收集整理的iOS RSA加签 验签 与Java同步 pkcs8 pkcs1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实现sm3算法
- 下一篇: Win10安装Nek5000