java rsa用公钥加密_使用给定公钥的RSA加密(在Java中)

以下是我仅使用RSA公钥加密字符串的方式。

首先将PEM格式的公钥保存到文件名pubkey.pem中

-----BEGIN PUBLIC KEY-----

AJOnAeTfeU4K+do5QdBM2BQUhfrRI2rYf/Gk4...

-----END PUBLIC KEY-----

查找公共RSA密钥模数

$ openssl rsa -pubin -in pubkey.pem -modulus -noout

Modulus=F56D...

查找公共RSA密钥指数

$ openssl rsa -pubin -in pubkey.pem -text -noout

...

Exponent: 65537 (0x10001)

然后将它们插入以下代码。

BigInteger modulus = new BigInteger("F56D...", 16);

BigInteger pubExp = new BigInteger("010001", 16);

KeyFactory keyFactory = KeyFactory.getInstance("RSA");

RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(modulus, pubExp);

RSAPublicKey key = (RSAPublicKey) keyFactory.generatePublic(pubKeySpec);

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

cipher.init(Cipher.ENCRYPT_MODE, key);

byte[] cipherData = cipher.doFinal(text.getBytes());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值