java android rsa加密解密_Android中的RSA加密解密

我正在爲Android中的RSA加密和解密實施演示。我可以很好地執行加密,但在解密中,我得到一個例外:>>java.security.InvalidKeyException: unknown key type passed to RSA。Android中的RSA加密解密

KeyPairGenerator kpg;

KeyPair kp;

PublicKey publicKey;

PrivateKey privateKey;

byte [] encryptedBytes,decryptedBytes;

Cipher cipher,cipher1;

String encrypted,decrypted;

public String RSAEncrypt (final String plain) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException

{

kpg = KeyPairGenerator.getInstance("RSA");

kpg.initialize(1024);

kp = kpg.genKeyPair();

publicKey = kp.getPublic();

privateKey = kp.getPrivate();

cipher = Cipher.getInstance("RSA");

cipher.init(Cipher.ENCRYPT_MODE, publicKey);

encryptedBytes = cipher.doFinal(plain.getBytes());

encrypted = new String(encryptedBytes);

System.out.println("EEncrypted?????"+encrypted);

return encrypted;

}

public String RSADecrypt (final String result) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException

{

cipher1=Cipher.getInstance("RSA");

cipher1.init(Cipher.DECRYPT_MODE, privateKey);

decryptedBytes = cipher1.doFinal(result.getBytes());

decrypted = new String(decryptedBytes);

System.out.println("DDecrypted?????"+decrypted);

return decrypted;

}

而且我從這裏調用該函數:

encrypt.setOnClickListener(new OnClickListener()

{

public void onClick(View arg0)

{

try

{

RSAEncrypt rsaencrypt=new RSAEncrypt();

rsaencrypt.RSAEncrypt(name);

result=rsaencrypt.RSAEncrypt(name);

Toast.makeText(getBaseContext(), result.toString(),Toast.LENGTH_SHORT).show();

System.out.println("Result:"+result);

}

catch(Exception e)

{

e.printStackTrace();

Toast.makeText(getBaseContext(), e.toString(),Toast.LENGTH_LONG).show();

}

}

});

decrypt.setOnClickListener(new OnClickListener()

{

public void onClick(View arg0)

{

{

try

{

RSAEncrypt rsadecrypt=new RSAEncrypt();

rsadecrypt.RSADecrypt(result);

ans=rsadecrypt.RSADecrypt(result);

System.out.println("Result is"+ans);

Toast.makeText(getBaseContext(), ans.toString(),Toast.LENGTH_LONG).show();

}

catch(Exception e)

{

e.printStackTrace();

Toast.makeText(getBaseContext(), e.toString(),Toast.LENGTH_LONG).show();

System.out.println("Exception is>>"+e);

}

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值