我对Java/Android还很陌生,在阅读了文档和一些教程之后,我仍然对这些操作到底做了什么感到困惑,特别是加载和存储调用。我正在查看Java方法中的以下代码,并对其有一些理解上的困难。inKeyStore是KeyStore类型的输入参数。
String password = "password";
KeyStore newKeyStore;
FileOutputStream out = mContext.openFileOutput("my.keystore", 0);
FileInputStream in = null;
try {
inKeyStore.store(out, password.toCharArray());
} catch (KeyStoreException e) {
if (out) out.close();
in = mContext.openFileInput("my.keystore");
newKeyStore = KeyStore.getInstance("BKS");
newKeyStore.load(in, password.toCharArray());
if (in) in.close();
}我知道如果inKeyStore.store()未初始化,它会抛出一个KeyStoreException。然而,我对一些事情感到困惑
谢谢!
发布于 2016-05-04 11:40:31
就你而言,你有:
内存中的-The KeyStore实例:KeyStore.getInstance(String type, String provider)
文件系统上的-The密钥存储文件:{app_priv_folder}\my.keystore
读取(文件==>内存):密钥存储:加载(http://developer.android.com/reference/java/security/KeyStore.html#load(java.io.InputStream,%20char[]%29)(InputStream流,char[]密码)
从提供的KeyStore初始化此InputStream。
写(内存==>文件): 密钥存储:存储 (OutputStream流,char[]密码)
将此KeyStore写入指定的OutputStream。
答案:
inKeyStore.store(out, password.toCharArray())将inKeyStore数据存储在"my.keystore":FileOutputStream out = mContext.openFileOutput("my.keystore", 0);文件中。https://stackoverflow.com/questions/37017598
复制相似问题