`
dannyhz
  • 浏览: 395250 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java rsa加密算法java实现

 
阅读更多
http://www.jb51.net/article/92714.htm


简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码。
package security;
import java.security.*;
import java.security.spec.*;
import java.security.interfaces.*;
import javax.crypto.spec.*;
import javax.crypto.interfaces.*;
import java.io.*;
import java.math.*;
public class RSADemo {
	public RSADemo() {
	}
	public static void generateKey() {
		try {
			KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
			kpg.initialize(1024);
			KeyPair kp = kpg.genKeyPair();
			PublicKey pbkey = kp.getPublic();
			PrivateKey prkey = kp.getPrivate();
			// 保存公钥
			FileOutputStream f1 = new FileOutputStream("pubkey.dat");
			ObjectOutputStream b1 = new ObjectOutputStream(f1);
			b1.writeObject(pbkey);
			// 保存私钥
			FileOutputStream f2 = new FileOutputStream("privatekey.dat");
			ObjectOutputStream b2 = new ObjectOutputStream(f2);
			b2.writeObject(prkey);
		} catch (Exception e) {
		}
	}
	public static void encrypt() throws Exception {
		String s = "Hello World!";
		// 获取公钥及参数e,n
		FileInputStream f = new FileInputStream("pubkey.dat");
		ObjectInputStream b = new ObjectInputStream(f);
		RSAPublicKey pbk = (RSAPublicKey) b.readObject();
		BigInteger e = pbk.getPublicExponent();
		BigInteger n = pbk.getModulus();
		System.out.println("e= " + e);
		System.out.println("n= " + n);
		// 获取明文m
		byte ptext[] = s.getBytes("UTF-8");
		BigInteger m = new BigInteger(ptext);
		// 计算密文c
		BigInteger c = m.modPow(e, n);
		System.out.println("c= " + c);
		// 保存密文
		String cs = c.toString();
		BufferedWriter out =
			new BufferedWriter(
				new OutputStreamWriter(new FileOutputStream("encrypt.dat")));
		out.write(cs, 0, cs.length());
		out.close();
	}
	public static void decrypt() throws Exception {
		// 读取密文
		BufferedReader in =
			new BufferedReader(
				new InputStreamReader(new FileInputStream("encrypt.dat")));
		String ctext = in.readLine();
		BigInteger c = new BigInteger(ctext);
		// 读取私钥
		FileInputStream f = new FileInputStream("privatekey.dat");
		ObjectInputStream b = new ObjectInputStream(f);
		RSAPrivateKey prk = (RSAPrivateKey) b.readObject();
		BigInteger d = prk.getPrivateExponent();
		// 获取私钥参数及解密
		BigInteger n = prk.getModulus();
		System.out.println("d= " + d);
		System.out.println("n= " + n);
		BigInteger m = c.modPow(d, n);
		// 显示解密结果
		System.out.println("m= " + m);
		byte[] mt = m.toByteArray();
		System.out.println("PlainText is ");
		for (int i = 0; i < mt.length; i++) {
			System.out.print((char) mt[i]);
		}
	}
	public static void main(String args[]) {
		try {
			generateKey();
			encrypt();
			decrypt();
		} catch (Exception e) {
			System.out.println(e.toString());
		}
	}
}
分享到:
评论

相关推荐

    java rsa加密算法实现

    在Java中实现RSA加密算法,主要涉及以下几个核心概念和步骤: 1. **RSA原理**:RSA算法基于数论中的大数因子分解难题,由两个大素数P和Q相乘得到N,然后计算N的欧拉函数φ(N) = (P-1) * (Q-1),选取一个与φ(N)互质...

    用Java语言实现RSA加密算法

    ### Java实现RSA加密算法的关键步骤 #### 1. 生成质数 RSA加密算法的基础在于选择两个足够大的随机质数\( p \)和\( q \)。在这段代码中,通过`BigInteger.probablePrime()`方法来生成质数。此方法返回一个可能为...

    Java实现的RSA加密解密算法示例

    Java实现的RSA加密解密算法示例 本文主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了Java RSA加密解密算法的相关实现技巧。 知识点1:RSA加密解密算法简介 RSA加密解密算法是一种非对称加密算法,由Ron...

    JAVA RSA 加密算法 RSA.java

    JAVA RSA 加密算法 RSA.java RSA公钥加解密,RSA私钥加解密,MD5withRSA 签名 MD5withRSA签名较验

    RSA加密算法实现以及C#与java互通加解密

    ### RSA加密算法实现以及C#与Java互通加解密 #### 一、RSA算法简介 RSA算法是一种非对称加密算法,由Ron Rivest、Adi Shamir 和 Leonard Adleman 在1977年提出,并以其三人的名字首字母命名。RSA算法的安全性基于...

    java实现RSA加密算法

    在实际开发中,Java的`java.security`和`javax.crypto`包提供了丰富的工具类和接口,可以帮助我们方便地实现RSA加密算法。通过理解这些核心概念并结合示例代码,可以更好地理解和实现RSA加密算法。在提供的压缩包...

    rsa加密算法的java实现实例

    RSA加密算法是公钥密码学中的一个重要组成部分,它基于大数因子分解的困难性,为数据传输和存储提供安全保障。在Java中实现RSA加密需要理解其基本原理,并使用Java Cryptography Extension (JCE) 提供的相关类库。...

    js实现rsa加密算法

    本rsa算法是使用Java与javascript加密解密范例代码,该资料从互联网收集,加上了自己的使用体会,如果对你有帮助那是万幸! js加密部分

    Java实现文件的RSA和DES加密

    同样,在 Java 中,实现 RSA 加密算法也可以通过生成一对密钥,然后保存到 xml 文件中,以便以后获取私匙和公钥。获取密钥的方法可以通过使用 KeyPairGenerator 对象生成密钥,然后将其保存到 xml 文件中。文件加密...

    Android,java实现RSA加密

    RSA加密算法,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也...

    Java RSA加密前后端实现

    在后端,Java提供了强大的加密库,如Java Cryptography Extension (JCE) 和 Bouncy Castle,支持RSA加密算法的实现。开发者可能会使用`java.security`包下的`KeyPairGenerator`类来生成公钥和私钥对,`Cipher`类进行...

    java-RSA.rar_Java实现RSA_java RSA_rsa java_rsa javascript_rsa加密算法

    在Java中实现RSA加密算法,可以确保数据的安全传输,防止数据在传输过程中被窃取或篡改。 RSA的核心原理基于大数因子分解的困难性。公钥是由两个大素数p和q的乘积n以及欧拉函数φ(n)(φ(n) = (p-1)(q-1))的因数e...

    java RSA加密 解密

    Java RSA 加密解密是一种常用的非对称加密算法,广泛应用于数据加密和数字签名等领域。但是,RSA 加密算法的速度相对较慢,一般不用于加密大数据,而是用于加密对称加密的密钥,以保证数据的安全。 相关知识点: *...

    Java公钥加密算法RSA.rar

    在Java中实现RSA加密,首先需要通过`java.security.KeyPairGenerator`类生成一对密钥。以下是一个简单的步骤概述: 1. 导入必要的库: ```java import java.security.KeyPair; import java.security....

    rsa加密算法java源代码

    java加密源代码程序,完全用JAVA实现的

    简单的RSA加密算法(JAVA实现的)

    Java作为跨平台的编程语言,提供了丰富的库来支持RSA加密算法的实现。在Java中,我们可以使用Java Cryptography Extension (JCE) 来实现RSA的加解密操作。JCE是Java平台的一部分,它提供了一套强大的加密API,包括...

    RSA加密算法JAVA源代码

    RSA加密算法,JAVA语言,在毕设中用到,分享给大家看下。

    RSA加密算法java版.zip

    在"RSA加密算法java版.zip"这个压缩包中,可能包含了一个实现了上述功能的Java项目或者类库,可以供开发者参考和使用,以便在实际项目中实现RSA加密。学习和理解这些知识点,对于任何涉及信息安全的Java开发者来说都...

    用javaRSA加密解密算法

    用JAVA实现RSA的解密和加密的算法。~亲测可以运行

    RSA加密算法--java实现

    在Java中实现RSA加密算法,通常涉及到以下几个关键知识点: 1. **密钥生成**:RSA的核心是生成一对密钥,即公钥和私钥。在Java中,我们使用`java.security.KeyPairGenerator`类来生成密钥对。首先,我们需要实例化...

Global site tag (gtag.js) - Google Analytics