Android将RSA公钥存储到文件夹

时间:2011-08-08 23:52:23

标签: java android rsa

我正在尝试使用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();

}

1 个答案:

答案 0 :(得分:0)

由于你专门询问公钥,我会假设你不是在问如何保护公钥,而你只是在询问IO。

您有几个选项,详见Android开发人员指南的Data Storage部分。本地存储的3个主要是SQL数据库,SharedPreferences和Files。如果问题更多的是关于如何将用户的公钥存储在他们自己的设备上,那么可能是文件或共享首选项。但是,由于您要存储多个公钥(与您通信的每个人,为了解密他们的消息),我建议您使用SQL数据库路径。