編輯:關於Android編程
在剛才開始學習android數字簽名的相關知識點的時候,被資料中出現的keystore、x509、密鑰對、debug.keystore弄的暈頭轉向,經過一段時間的了解,總算明白一些。
android源碼中自帶的工具make_key(development/tools/目錄下)可以用來生成RSA密鑰對。
./make_key test ‘/C=CN/ST=SH/L=SH/O=TEST/OU=TEST/CN=TEST’
運行以上命令將生成密鑰對test.pk8和test.x509.pem。該命令中, /C表示“Country Code”,/ST表示“State orProvince”,/L表示“City or
Locality”,/O表示“Organization”,/OU表示“Organizational Unit”,/CN表示“Name”。
make_key腳本中關鍵代碼如下:
( openssl genrsa -f4 2048 | tee ${one} > ${two} ) & openssl req -new -x509 -sha1 -key ${two} -out $1.x509.pem \ -days 10000 -subj "$2" & if [ "${password}" == "" ]; then echo "creating ${1}.pk8 with no password" openssl pkcs8 -in ${one} -topk8 -outform DER -out $1.pk8 -nocrypt else echo "creating ${1}.pk8 with password [${password}]" echo $password | openssl pkcs8 -in ${one} -topk8 -outform DER -out $1.pk8 \ -passout stdin
其實主要利用了openssl來實現, openssl是一個強大的命令,要了解openssl, 可以參考百度百科http://baike.baidu.com/view/300712.htm?fr=aladdin
Android數字簽名解析(一)中介紹過用keytool生成密鑰的方法,
keytool -genkey -alias test.keystore -keyalg RSA -validity 10000 -keystore test.keystore
keytool為JDK中自帶的工具,一些第三方的應用開發者,由於沒有Android源碼環境, 所以會采用keytool來生成密鑰。
1、把pkcs8格式的私鑰轉換為pkcs12格式:
openssl pkcs8 -in test.pk8 -inform DER -outform PEM -out test.priv.pem -nocrypt
2、生成pkcs12格式的密鑰文件:
openssl pkcs12 -export -in test.x509.pem -inkey test.priv.pem -out test.pk12 -name testkey
3、生成keystore:
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore test.keystore -srckeystore shared.pk12
srcstoretype PKCS12 -srcstorepass android -alias testkey
這樣就生成了一個名為test.keystore的keystore文件,就可以用這個文件對apk簽名。
1、keystore文件轉換為pkcs12格式
keytool -importkeystore -srckeystore test.keystore -destkeystore test.p12 -srcstoretype JKS - deststoretype PKCS12
2、dump pkcs12 文件
openssl pkcs12 -in test.p12 -nodes -out test.rsa.pem
3、以文本形式打開test.rsa.pem,復制“BEGIN CERTIFICATE” “END CERTIFICATE”之間的內容到一個文件
test.x509.pem, 即公鑰
4、復制 “BEGIN RSA PRIVATE KEY”“END RSA PRIVATE KEY” 之間的內容到一個文件test.rsa.pem,然後運行如下命令
openssl pkcs8 -topk8 -outform DER -in test.rsa.pem -inform PEM -out test.pk8 -nocrypt
這樣就test.x509.pem和test.pk8就生成了.
1、所謂無圖無真相,先上效果圖。我們要實現的就是中間那個錄音的按鈕,周邊會顯示一圈音量大小的波形 2、VolumCircleBar繼承自View,我們進行了自定義,代碼
部分用戶反應華為榮耀7i不能進行OTA升級,不能直接再WiFi網絡下直接升級最新版的EMUI系統,你的華為榮耀7i是否也出現了這個情況呢?下面安下小編給大家
一、Android Studio 主題的設置1.1 設置Android Studio 自帶的主題及包名字體大小1.2 導入第三方主題:下載了第三方的主題,然後執行:Fil
1. 備忘錄設計模式介紹在不破壞封閉的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態,這樣,以後就可將該對象恢復到原先保存的狀態。2. 備忘錄設計模式使用場景