java rsa解密实例_RSA非对称加密解密Java实例代码

本文提供了一个详细的Java RSA非对称加密解密的实例,通过公钥加密内容并写入文件,然后使用私钥从文件中解密。内容包括如何根据公钥和私钥生成Key对象,以及如何处理加密和解密过程中可能出现的块大小问题。
摘要由CSDN通过智能技术生成

String content = "";

for(int i=1;i<100;i++)content += i + ") Easy to say, hard to do.\n";

/*1、利用公钥加密至文件*/

{

/*1)根据公钥反向构造PublickKey对象,调用cipher的init方法时使用*/

String KEY_PUBLIC = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIv38xXk06As11OCWq0IPQoQAmz20ZiE8T5KeaMTUbhzUkGNTAQygApua71R/INeEDNsyyQS4PT6EaWTjJop2rcCAwEAAQ==";

X509EncodedKeySpec keySpec = new X509EncodedKeySpec(new BASE64Decoder().decodeBuffer(KEY_PUBLIC));

PublicKey key = KeyFactory.getInstance("RSA").generatePublic(keySpec);

Cipher cipher = Cipher.getInstance("RSA");//RSA/ECB/PKCS1PADDING

cipher.init(Cipher.ENCRYPT_MODE, key);

/*

* 直接加密,因为内容太长将有异常,需要分块加密

* javax.crypto.IllegalBlockSizeException: Data must not be longer than 53 bytes

* cipher.doFinal(content.getBytes())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值