最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android簽名文件轉(zhuǎn)化為pk8和pem的實(shí)現(xiàn)

 更新時(shí)間:2020年03月19日 11:30:21   作者:螞蟻潛行  
這篇文章主要介紹了Android簽名文件轉(zhuǎn)化為pk8和pem的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

Android簽名工具

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

什么是.pem和.pk8文件

.pem

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

.pk8

以.pk8為擴(kuò)展名的文件,應(yīng)該和PKCS #8是對應(yīng)的,用來保存private key。

keystore文件轉(zhuǎn)化為pk8+pem

1.將keystore文件轉(zhuǎn)換為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);

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

復(fù)制 “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 -nocrypt
cert.x509.pem private.pk8

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

*備注:
-nocrypt 這個(gè)參數(shù)設(shè)定key加密 如果設(shè)置了這個(gè)參數(shù) 下面簽名 只要證書+key 不需要密碼了 如果加密 應(yīng)該
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

使用這種方式會(huì)報(bào)錯(cuò):找不到 的證書鏈?!痢?必須引用包含專用密鑰和相應(yīng)的公共密鑰證書鏈的有效密鑰庫密鑰條目。

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

補(bǔ)充知識(shí):Android 創(chuàng)建自己的pk8, x509.pem并給app簽名

1, 生成key

命令: keytool -genkey -v -keystore app.keystore -alias gundam_wing -keyalg RSA -validity 20000
控制臺(tái)輸出:
輸入密鑰庫口令:
再次輸入新口令:
您的名字與姓氏是什么?
[Unknown]: TechStone
您的組織單位名稱是什么?
[Unknown]: Gundam
您的組織名稱是什么?
[Unknown]: Gundam
您所在的城市或區(qū)域名稱是什么?
[Unknown]: Shanghai
您所在的省/市/自治區(qū)名稱是什么?
[Unknown]: Shanghai
該單位的雙字母國家/地區(qū)代碼是什么?
[Unknown]: zh
CN=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> 的密鑰口令
(如果和密鑰庫口令相同, 按回車):
[正在存儲(chǔ)app.keystore]

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

2, 轉(zhuǎn)換key的格式

命令:

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

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

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

命令:

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

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

4, 提取

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

-----END PRIVATE KEY-----

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

將從
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----


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

5, 轉(zhuǎn)換,生成pk8格式的私鑰

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

這個(gè)生成的my_private.pk8就是簽名時(shí)用到的私鑰

6, 對apk簽名

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

以上這篇Android簽名文件轉(zhuǎn)化為pk8和pem的實(shí)現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • android底部菜單欄實(shí)現(xiàn)原理與代碼

    android底部菜單欄實(shí)現(xiàn)原理與代碼

    底部菜單欄很重要,我看了一下很多應(yīng)用軟件都是用了底部菜單欄做,我這里使用了tabhost做了一種通用的(就是可以像微信那樣顯示未讀消息數(shù)量的,雖然之前也做過但是layout下的xml寫的太臃腫,這里去掉了很多不必要的層,個(gè)人看起來還是不錯(cuò)的,所以貼出來方便以后使用
    2013-01-01
  • Flutter Reusable Lottie Animations技巧

    Flutter Reusable Lottie Animations技巧

    這篇文章主要為大家介紹了Flutter Reusable Lottie Animations技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Android字符串和十六進(jìn)制相互轉(zhuǎn)化出現(xiàn)的中文亂碼問題

    Android字符串和十六進(jìn)制相互轉(zhuǎn)化出現(xiàn)的中文亂碼問題

    這篇文章主要介紹了Android字符串和十六進(jìn)制相互轉(zhuǎn)化出現(xiàn)的中文亂碼問題的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Android使用AlarmManager設(shè)置鬧鐘功能

    Android使用AlarmManager設(shè)置鬧鐘功能

    這篇文章主要為大家詳細(xì)介紹了Android使用AlarmManager設(shè)置鬧鐘功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Android實(shí)現(xiàn)視頻播放--騰訊瀏覽服務(wù)(TBS)功能

    Android實(shí)現(xiàn)視頻播放--騰訊瀏覽服務(wù)(TBS)功能

    TBS視頻播放器可以支持市面上幾乎所有的視頻格式,包括mp4, flv, avi, 3gp, webm, ts, ogv, m3u8, asf, wmv, rm, rmvb, mov, mkv等18種視頻格式。這篇文章主要介紹了Android實(shí)現(xiàn)視頻播放--騰訊瀏覽服務(wù)(TBS),需要的朋友可以參考下
    2018-07-07
  • 使用 Lambda 取代 Android 中的匿名類

    使用 Lambda 取代 Android 中的匿名類

    本文主要介紹使用Lambda 取代 Android 中的匿名類的資料,這里這里了相關(guān)資料及簡單示例代碼幫助大家學(xué)習(xí)參考此部分的知識(shí),有需要的小伙伴可以參考下
    2016-09-09
  • Android RetainFragment狀態(tài)保存的方法

    Android RetainFragment狀態(tài)保存的方法

    本篇文章主要介紹了Android RetainFragment狀態(tài)保存的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Android uses-permission權(quán)限列表中文注釋版

    Android uses-permission權(quán)限列表中文注釋版

    Android有一個(gè)精心設(shè)計(jì)的安全模型。每一個(gè)應(yīng)用都有其自己Linux用戶和群組,在單獨(dú)的進(jìn)程和VM上運(yùn)行,不能影響到其他應(yīng)用
    2014-05-05
  • Android簡單記錄和恢復(fù)ListView滾動(dòng)位置的方法

    Android簡單記錄和恢復(fù)ListView滾動(dòng)位置的方法

    這篇文章主要介紹了Android簡單記錄和恢復(fù)ListView滾動(dòng)位置的方法,涉及Android針對ListView位置屬性的相關(guān)操作技巧,需要的朋友可以參考下
    2016-08-08
  • Android進(jìn)度條ProgressBar的實(shí)現(xiàn)代碼

    Android進(jìn)度條ProgressBar的實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了Android進(jìn)度條ProgressBar的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評論

乐昌市| 旌德县| 吉安市| 河西区| 宝清县| 金寨县| 博爱县| 和田市| 拉萨市| 雅江县| 靖江市| 黔江区| 寻乌县| 泽普县| 长兴县| 盐池县| 射阳县| 安多县| 界首市| 儋州市| 将乐县| 宝坻区| 樟树市| 普宁市| 岳西县| 岳阳县| 九龙县| 深州市| 武隆县| 县级市| 丰台区| 邵阳县| 西昌市| 紫金县| 崇仁县| 龙井市| 松原市| 策勒县| 连江县| 大埔县| 鄄城县|