android 和服务端rsa,Android---解密服务器RSA内容

重点:

1.加密内容/key转byte数组,用Base64工具;

2.获取私钥key,规则是 KeyFactory.getInstance("RSA", "BC");// 入参“BC”不可以省略;

3.解密的时候,规则是Cipher.getInstance("RSA/ECB/PKCS1Padding");

4.返回的byte数组,用new String(byte[]);打印

public void doSomething(String enContent) {

byte[] encryptContent = Base64.decode(enContent, Base64.DEFAULT);// enContent,加密内容。。。。务必用Base64解密

byte[] privateKeyContent = Base64.decode(privateKey, Base64.DEFAULT);//privateKey 私钥

byte[] bytes1 = decryptByPrivateKey(encryptContent, privateKeyContent);

String resultString = new String(bytes1);

int result = StringUtils.tranString2Int(resultString);

LogUtil.d(TAG,"Enter getVerifiyPercentage resultString : " + resultString);

LogUtil.d(TAG,"Enter getVerifiyPercentage result : " + result);

}

public static byte[] decryptByPrivateKey(byte[] encrypted, byte[] privateKey) {

// 得到私钥对象

byte[] arr = null;

try {

// 得到私钥

PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKey);

KeyFactory kf = KeyFactory.getInstance("RSA", "BC");// 入参“BC”不可以省略

PrivateKey privateK = kf.generatePrivate(keySpec);

// 解密数据

Cipher cp = Cipher.getInstance("RSA/ECB/PKCS1Padding");// 与Java解密不一样

cp.init(Cipher.DECRYPT_MODE, privateK);

arr = cp.doFinal(encrypted);

} catch (Exception e) {

LogUtil.d(LoginPresenter.class, "decryptByPrivateKey Exception ");

e.printStackTrace();

}

return arr;

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值