国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Android簽名文件轉化為pk8和pem的實現

瀏覽:57日期:2022-09-26 10:21:25

Android簽名工具

常用的android的簽名工具有:jarsigner 和apksigner。jarsigner使用keystore文件,apksigner使用pk8+x509.pem。

什么是.pem和.pk8文件

.pem

在android對apk簽名的時候,.pem這種文件就是一個X.509的數字證書,里面有用戶的公鑰等信息,是用來解密的。文件格式里面不僅可以存儲數字證書,還能存各種key。

.pk8

以.pk8為擴展名的文件,應該和PKCS #8是對應的,用來保存private key。

keystore文件轉化為pk8+pem

1.將keystore文件轉換為pkcs12格式

keytool -importkeystore -srckeystore my.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12

2. 將PKCS12 dump成pem

openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem

tmp.rsa.pem 是文本格式可以直接查看。

打開文本可以看到私鑰(PRIVATE KEY )和證書(CERTIFICATE);

復制“BEGIN CERTIFICATE” “END CERTIFICATE” 到(新建個文件) cert.x509.pem

復制 “BEGIN RSA PRIVATE KEY” “END RSA PRIVATE KEY” 到(同上) private.rsa.pem

cert.x509.pem 文件即是我們最后需要的證書文件

3.生成pk8格式的私鑰

openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8 -nocryptcert.x509.pem private.pk8

即是我們最后需要的文件。

*備注: -nocrypt 這個參數設定key加密 如果設置了這個參數 下面簽名 只要證書+key 不需要密碼了 如果加密 應該 openssl pkcs8 -topk8 -outform DER -in private.rsa.pem -inform PEM -out private.pk8 接下來輸入密碼*

4.用法

java -jar signapk.jar cert.x509.pem private.pk8 unsigned.apk signed.apk

jarsigner 的用法

jarsigner -verbose -keystore android.keystore -signedjar android_signed.apk android.apk android.keystore

使用這種方式會報錯:找不到 的證書鏈?!痢?必須引用包含專用密鑰和相應的公共密鑰證書鏈的有效密鑰庫密鑰條目。

jarsigner -verbose -keystore DT.jks -signedjar signed.apk unsigned.apk '別名'

補充知識:Android 創建自己的pk8, x509.pem并給app簽名

1, 生成key

命令: keytool -genkey -v -keystore app.keystore -alias gundam_wing -keyalg RSA -validity 20000控制臺輸出:輸入密鑰庫口令: 再次輸入新口令: 您的名字與姓氏是什么?[Unknown]: TechStone您的組織單位名稱是什么?[Unknown]: Gundam您的組織名稱是什么?[Unknown]: Gundam您所在的城市或區域名稱是什么?[Unknown]: Shanghai您所在的省/市/自治區名稱是什么?[Unknown]: Shanghai該單位的雙字母國家/地區代碼是什么?[Unknown]: zhCN=TechStone, OU=Gundam, O=Gundam, L=Shanghai, ST=Shanghai, C=zh是否正確?[否]: Y

正在為以下對象生成 2,048 位RSA密鑰對和自簽名證書 (SHA256withRSA) (有效期為 20,000 天):CN=TechStone, OU=Gundam, O=Gundam, L=Shanghai, ST=Shanghai, C=zh輸入 <gundam_wing> 的密鑰口令(如果和密鑰庫口令相同, 按回車): [正在存儲app.keystore]

這個命令會生成帶組織/個人信息的key,并存放在app.keystore文件中

2, 轉換key的格式

命令:

keytool -importkeystore -srckeystore app.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12

控制臺會提示輸出tmp.p12的密碼以及app.keystore的密碼,輸入正確之后將會生成tmp.p12文件。

3, 將PKCS12格式的key dump為可直接閱讀的文本

命令:

openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem

dump過程中也會提示輸入密碼,正確輸入之后可閱讀的token會存儲在tmp.rsa.pem中

4, 提取

用文本編輯器打開tmp.rsa.pem,將從-----BEGIN PRIVATE KEY-----到-----END PRIVATE KEY-----

這一段(包含這兩個tag)的文本復制出來,新建為文件my_private.rsa.pem

將從-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----

這一段(包含這兩個tag)的文本復制出來,新建為文件my.x509.pem (簽名時用到的公鑰)

5, 轉換,生成pk8格式的私鑰

openssl pkcs8 -topk8 -outform DER -in my_private.rsa.pem -inform PEM -out my_private.pk8 -nocrypt

這個生成的my_private.pk8就是簽名時用到的私鑰

6, 對apk簽名

java -jar signapk.jar my.x509.pem my_private.pk8 my.apk my_signed.apk

以上這篇Android簽名文件轉化為pk8和pem的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 欧美色欧美色 | 亚洲欧美在线综合一区二区三区 | 久草在现视频 | 欧美 日韩 国产 成人 在线观看 | 日本精品久久久久中文字幕 1 | 日本无遮 | 亚洲精品区一区二区三区四 | 欧美aaaaa一级毛片在线 | 国产精品三级国语在线看 | 美女很黄很黄免费 | 日本三级香港三级人妇r | 久久99久久精品视频 | 特级片在线观看 | 在线观看一区 | 亚洲成aⅴ人片在线观 | 看一级毛片国产一级毛片 | 看亚洲a级一级毛片 | 欧美日韩一区二区中文字幕视频 | 国产日韩欧美综合一区二区三区 | 一级女性全黄久久生活片 | 久草免费新视频 | 亚洲男女视频 | 久艹视频在线 | 精品久久成人免费第三区 | 最新亚洲人成网站在线影院 | 午夜香港三级a三级三点 | 99ri在线精品视频 | 免费一区二区三区久久 | 日韩国产精品欧美一区二区 | 久在线观看视频 | 国产日韩欧美综合在线 | 亚洲人成在线播放网站 | 狠狠澡夜夜澡人人爽 | 亚洲线精品一区二区三区 | 免费看一级视频 | 日本欧美一区二区三区视频 | 456亚洲老头视频 | 天天夜夜久久 | 久久在线观看免费视频 | 一级毛片情侣 | 日韩一级不卡 |