程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> keystore-android安全存儲,使用AndroidKeyStore的問題

keystore-android安全存儲,使用AndroidKeyStore的問題

編輯:編程解疑
android安全存儲,使用AndroidKeyStore的問題

最近在研究android的keystore安全存儲,網上就一篇關於這個的博客,但是有些地方沒講清楚,資料非常少。。。

我使用以下方式存儲了私鑰和證書:

mKeyStore = KeyStore.getInstance("AndroidKeyStore");//獲取密鑰庫

KeyStore.PrivateKeyEntry expected = new KeyStore.PrivateKeyEntry(priKey, expectedChain);

mKeyStore.setEntry("mytestRSAkey", expected, new KeyStoreParameter.Builder(this.getBaseContext()).setEncryptionRequired(true).build());//加密存儲

現在我要提取公鑰和私鑰:

actualEntry = mKeyStore.getEntry("mytestRSAkey",null);//獲取密鑰

KeyStore.PrivateKeyEntry actual = (KeyStore.PrivateKeyEntry) actualEntry;

pubKey=actual.getCertificate().getPublicKey();

priKey=actual.getPrivateKey();

可能是出於保護私鑰的目的,priKey.getEncoded()是獲取不到私鑰的,只有一個密鑰索引,導致我使用使用該私鑰解密時出錯

public static byte[] decrypt_RSA(byte[] encryptedData, PrivateKey privateKey)

{

try
{

Cipher cipher = Cipher.getInstance("RSA");

cipher.init(Cipher.DECRYPT_MODE, privateKey);

return cipher.doFinal(encryptedData);

} catch (Exception e)

{

return null;

}

}

現在我該怎麼使用priKey來解密數據啊

最佳回答:


問題解決,Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");就可以了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved