我正在尝试使用RSA加密保护创建SMS应用。 我想问一下如何存储PublicKey?
我尝试从Storing.class导入方法,但失败了。
这是我的代码
public class storePubKey extends BroadcastReceiver
{
Storing store = new Storing();
public void onReceive(Context context, Intent intent)
{
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
try{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
str = msgs[i].getMessageBody().toString();
store.saveToFile("public.key",str);
}
}catch(Exception e){}
}
//---display the new SMS message---
try {
Toast.makeText(context,("public.keyYYYYYY"), Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public class Storing extends Activity {
public void saveToFile(String filename, String sms) throws NoSuchAlgorithmException, InvalidKeySpecException, IOException{
OutputStreamWriter out = new OutputStreamWriter(openFileOutput(filename, Context.MODE_APPEND));
out.write(sms);
out.close();
}
答案 0 :(得分:0)
由于你专门询问公钥,我会假设你不是在问如何保护公钥,而你只是在询问IO。
您有几个选项,详见Android开发人员指南的Data Storage部分。本地存储的3个主要是SQL数据库,SharedPreferences和Files。如果问题更多的是关于如何将用户的公钥存储在他们自己的设备上,那么可能是文件或共享首选项。但是,由于您要存储多个公钥(与您通信的每个人,为了解密他们的消息),我建议您使用SQL数据库路径。