`
- 浏览:
402252 次
- 性别:
- 来自:
长春
-
Java生成RSA非对称型加密的公钥和私钥(利用java API)
非对称型加密非常适合多个客户端和服务器之间的秘密通讯,客户端使用同一个公钥将明文加密,而这个公钥不能逆向的解密,密文发送到服务器后有服务器端用私钥解密,这样就做到了明文的加密传送。
非对称型加密也有它先天的缺点,加密、解密速度慢制约了它的发挥,如果你有大量的文字需要加密传送,建议你通过非对称型加密来把对称型‘密钥’分发到客户端,及时更新对称型‘密钥’。
import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
/**
* <p>Title: RSA非对称型加密的公钥和私钥</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class KeyRSA {
private KeyPairGenerator kpg = null;
private KeyPair kp = null;
private PublicKey public_key = null;
private PrivateKey private_key = null;
private FileOutputStream public_file_out = null;
private ObjectOutputStream public_object_out = null;
private FileOutputStream private_file_out = null;
private ObjectOutputStream private_object_out = null;
/**
* 构造函数
* @param in 指定密匙长度(取值范围:512~2048)
* @throws NoSuchAlgorithmException 异常
*/
public KeyRSA(int in, String address) throws NoSuchAlgorithmException,FileNotFoundException, IOException
{
kpg = KeyPairGenerator.getInstance("RSA"); //创建‘密匙对’生成器
kpg.initialize(in); //指定密匙长度(取值范围:512~2048)
kp = kpg.genKeyPair(); //生成‘密匙对’,其中包含着一个公匙和一个私匙的信息
public_key = kp.getPublic(); //获得公匙
private_key = kp.getPrivate(); //获得私匙
//保存公匙
public_file_out = new FileOutputStream(address + "/public_key.dat");
public_object_out = new ObjectOutputStream(public_file_out);
public_object_out.writeObject(public_key);
//保存私匙
private_file_out = new FileOutputStream(address + "/private_key.dat");
private_object_out = new ObjectOutputStream(private_file_out);
private_object_out.writeObject(private_key);
}
public static void main(String[] args) {
try {
System.out.println("私匙和公匙保存到C盘下的文件中.");
new KeyRSA(1024, "c:/");
}
catch (IOException ex) {
}
catch (NoSuchAlgorithmException ex) {
}
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在信息安全领域,非对称加密是一种重要的加密技术,它利用一对公钥和私钥进行加密和解密。公钥是公开的,任何人都可以获取,而私钥则是保密的,只有拥有者才能使用。Java 提供了丰富的 API 来支持非对称加密,如 RSA...
"Go-gorsa"是一个专门为Go语言设计的安全库,它专注于RSA(Rivest-Shamir-Adleman)加密算法的实现,允许用户进行公钥加密和私钥解密,以及公钥解密和私钥加密的操作。这一特性使得gorsa在确保信息安全方面具有很高...
RSA(Rivest-Shamir-Adleman)是非对称加密算法的代表,其基本原理是利用两个大素数生成一对密钥:公钥和私钥。公钥可以公开给任何人,用于加密数据;而私钥则需要保密,用于解密数据。这种特性使得RSA在数据传输中...
6. **安卓实现**:在安卓应用中,可以使用Java的`java.security`包来实现RSA的加密和解密操作。首先创建KeyPairGenerator对象,设置算法为"RSA",然后生成密钥对,接着使用PublicKey进行加密,PrivateKey进行解密。 ...
RSA算法是一种非对称加密算法,它基于两个不同的密钥:公钥和私钥。在RSA系统中,信息可以用其中一个密钥加密,然后只能用另一个密钥解密。这种特性使得RSA非常适合用于保护数据的机密性,比如在网络传输中保护敏感...
这些库提供了方便的API,可以方便地生成密钥对、加密和解密数据。例如,使用Forge库,可以创建RSA密钥对,然后使用公钥加密数据,私钥解密数据。 3. Java实现RSA: Java是一种强类型、面向对象的编程语言,其标准库...
RSA是一种非对称加密算法,广泛应用于网络安全领域,如数据加密、数字签名等。...通过理解以上知识点,你可以顺利地将PKCS#8格式的RSA公私钥转换为C#可使用的XML格式,以便在.NET环境中进行加密和解密操作。
首先,我们需要理解RSA(Rivest-Shamir-Adleman)算法,这是一种常见的非对称加密算法,用于生成公钥和私钥对。在Java中,我们可以使用Java Cryptography Extension (JCE) 来实现这个功能。JCE是Java平台的标准扩展...
RSA非对称密码算法是一种广泛应用于信息安全领域的加密技术,它基于数论中的大数因子分解难题,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。在C++中实现RSA算法需要理解其基本原理和数学...
- **技术栈**:使用Java作为开发语言,可以利用JDK自带的`java.security`包中的`Cipher`类来实现加密和解密操作。 - **用户界面**:考虑到用户体验,可以设计一个图形用户界面(GUI),使用户能够方便地选择待加密或...
开发者可以利用Java的IO流进行文件读写,同时Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE) 提供了加密和解密所需的框架和算法支持。 RSA,全称为Rivest-Shamir-Adleman,是一种非...
在这个场景中,【标题】"用javascript与java进行RSA加密与解密" 提到的技术是使用JavaScript和Java来实现RSA加密算法,这是一种非对称加密方法,常用于保护敏感数据,如用户密码。以下是关于RSA加密和解密以及相关...
RSA算法是一种著名的非对称加密技术,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。它基于大整数因子分解的困难性,使得只有拥有正确密钥的人才能解密信息。在本文中,我们将深入探讨如何...
RSA是一种非对称加密技术,它使用一对密钥,即公钥和私钥,来进行加密和解密操作。这种算法的特点是,公钥可以公开分享,而私钥必须严格保密。以下是对该主题的详细阐述: 1. RSA算法基础:RSA基于数论中的两个大...
RSA算法作为非对称加密技术的代表,利用一对密钥——公钥和私钥,分别用于数据的加密和解密。公钥可以公开,私钥必须保密,这样的机制极大地增强了加密通信的安全性。由于其在理论和实际中的强大功能,RSA算法被国际...
RSA算法是一种非对称加密算法,它在信息安全领域扮演着重要的角色,特别是在数据加密和数字签名方面。由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这个算法基于大整数因子分解的困难性,...
RSA的加密过程使用的是公钥(n和e),解密则需要私钥(n和d),其中e和d是欧拉函数φ(n)的互逆元。φ(n)=(p-1)*(q-1),选取e与φ(n)互质,然后计算d使得d*e ≡ 1 (mod φ(n))。 1. **加密过程**: - 公钥(E,N)...
然后,使用Java编程语言实现RSA密钥对的生成、文件的读取、加密和解密操作。这部分涉及到Java的Math和Security包,特别是java.security.KeyPairGenerator和Cipher类。在JSP层面,开发者会创建相应的页面让用户上传...
如果你正在处理名为"RSAjiami"的C语言项目,你可能正在实现或使用一个简化的RSA加密库,可能包含公钥、私钥生成、加密和解密函数等功能。为了确保代码的正确性和安全性,记得进行充分的测试,并遵循最佳实践。
这是一个RSA加密解密软件,可以指定大素数P和Q的位数,生成RSA公钥和私钥。还可以用用来对字符型文本进行加解密。