700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java使用RSA加密方式实现数据加密解密

java使用RSA加密方式实现数据加密解密

时间:2023-07-30 16:06:33

相关推荐

java使用RSA加密方式实现数据加密解密

全栈工程师开发手册 (作者:栾鹏)

java教程全解

java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥

测试代码

public static void main(String args[]) {try {RSADemo rsa=new RSADemo();rsa.generateKey();byte[] data=rsa.encrypt("luanpeng".getBytes());byte[] data1=rsa.decrypt(data);String str=new String(data1);System.out.println(str);} catch (Exception e) {System.out.println(e.toString());}}

RSA工具类的实现

package com.lp.app.safe;import java.security.*;import java.security.interfaces.*;import java.math.*;public class RSADemo {public RSADemo() {}PublicKey pbkey;PrivateKey prkey;public void generateKey() {try {KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");kpg.initialize(1024);KeyPair kp = kpg.genKeyPair();pbkey = kp.getPublic();prkey = kp.getPrivate();} catch (Exception e) {}}//加密,需要公钥public byte[] encrypt(byte[] ptext) throws Exception {// 获取公钥及参数e,nRSAPublicKey pbk = (RSAPublicKey)pbkey;BigInteger e = pbk.getPublicExponent();BigInteger n = pbk.getModulus();// 获取明文mBigInteger m = new BigInteger(ptext);// 计算密文cBigInteger c = m.modPow(e, n);return c.toByteArray();}//使用私钥进行解密public byte[] decrypt(byte[] ctext) throws Exception {// 读取密文BigInteger c = new BigInteger(ctext);// 读取私钥RSAPrivateKey prk = (RSAPrivateKey)prkey;BigInteger d = prk.getPrivateExponent();// 获取私钥参数及解密BigInteger n = prk.getModulus();BigInteger m = c.modPow(d, n);// 显示解密结果byte[] mt = m.toByteArray();return mt;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。