`

Java生成RSA非对称型加密的公钥和私钥(利用java API)

    博客分类:
  • JAVA
阅读更多

非对称型加密非常适合多个客户端和服务器之间的秘密通讯,客户端使用同一个公钥将明文加密,而这个公钥不能逆向的解密,密文发送到服务器后有服务器端用私钥解密,这样就做到了明文的加密传送。

非对称型加密也有它先天的缺点,加密、解密速度慢制约了它的发挥,如果你有大量的文字需要加密传送,建议你通过非对称型加密来把对称型‘密钥’分发到客户端,及时更新对称型‘密钥’。

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) {
    }
  }

}

分享到:
评论

相关推荐

    Java生成非对称型加密公钥和私钥的方法

    在信息安全领域,非对称加密是一种重要的加密技术,它利用一对公钥和私钥进行加密和解密。公钥是公开的,任何人都可以获取,而私钥则是保密的,只有拥有者才能使用。Java 提供了丰富的 API 来支持非对称加密,如 RSA...

    Go-gorsa支持rsa公钥加密私钥解密;支持rsa公钥解密私钥加密

    "Go-gorsa"是一个专门为Go语言设计的安全库,它专注于RSA(Rivest-Shamir-Adleman)加密算法的实现,允许用户进行公钥加密和私钥解密,以及公钥解密和私钥加密的操作。这一特性使得gorsa在确保信息安全方面具有很高...

    .net RSA非对称加密例子

    RSA(Rivest-Shamir-Adleman)是非对称加密算法的代表,其基本原理是利用两个大素数生成一对密钥:公钥和私钥。公钥可以公开给任何人,用于加密数据;而私钥则需要保密,用于解密数据。这种特性使得RSA在数据传输中...

    非对称RSA加密

    6. **安卓实现**:在安卓应用中,可以使用Java的`java.security`包来实现RSA的加密和解密操作。首先创建KeyPairGenerator对象,设置算法为"RSA",然后生成密钥对,接着使用PublicKey进行加密,PrivateKey进行解密。 ...

    RSA的JAVA加密方法

    RSA算法是一种非对称加密算法,它基于两个不同的密钥:公钥和私钥。在RSA系统中,信息可以用其中一个密钥加密,然后只能用另一个密钥解密。这种特性使得RSA非常适合用于保护数据的机密性,比如在网络传输中保护敏感...

    js和JAVA实现RSA.zip

    这些库提供了方便的API,可以方便地生成密钥对、加密和解密数据。例如,使用Forge库,可以创建RSA密钥对,然后使用公钥加密数据,私钥解密数据。 3. Java实现RSA: Java是一种强类型、面向对象的编程语言,其标准库...

    RSA公私钥pkcs8转换为C#用的xml

    RSA是一种非对称加密算法,广泛应用于网络安全领域,如数据加密、数字签名等。...通过理解以上知识点,你可以顺利地将PKCS#8格式的RSA公私钥转换为C#可使用的XML格式,以便在.NET环境中进行加密和解密操作。

    alipay公钥密钥build.rar

    首先,我们需要理解RSA(Rivest-Shamir-Adleman)算法,这是一种常见的非对称加密算法,用于生成公钥和私钥对。在Java中,我们可以使用Java Cryptography Extension (JCE) 来实现这个功能。JCE是Java平台的标准扩展...

    C++ RSA非对称密码算法

    RSA非对称密码算法是一种广泛应用于信息安全领域的加密技术,它基于数论中的大数因子分解难题,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。在C++中实现RSA算法需要理解其基本原理和数学...

    java源码基于JAVA的RSA文件加密软件的设计与实现(源代码+文档)

    - **技术栈**:使用Java作为开发语言,可以利用JDK自带的`java.security`包中的`Cipher`类来实现加密和解密操作。 - **用户界面**:考虑到用户体验,可以设计一个图形用户界面(GUI),使用户能够方便地选择待加密或...

    毕业设计 计算机专业- 基于JAVA的RSA文件加密软件的设计与实现(源代码+论文)

    开发者可以利用Java的IO流进行文件读写,同时Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE) 提供了加密和解密所需的框架和算法支持。 RSA,全称为Rivest-Shamir-Adleman,是一种非...

    用javascript与java进行RSA加密与解密

    在这个场景中,【标题】"用javascript与java进行RSA加密与解密" 提到的技术是使用JavaScript和Java来实现RSA加密算法,这是一种非对称加密方法,常用于保护敏感数据,如用户密码。以下是关于RSA加密和解密以及相关...

    使用Qt实现简化版的RSA算法

    RSA算法是一种著名的非对称加密技术,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。它基于大整数因子分解的困难性,使得只有拥有正确密钥的人才能解密信息。在本文中,我们将深入探讨如何...

    将公钥加密算法RSA应用于小型文件加密 将任意文件加密成文本的解决方案,使其使用更加灵活.zip

    RSA是一种非对称加密技术,它使用一对密钥,即公钥和私钥,来进行加密和解密操作。这种算法的特点是,公钥可以公开分享,而私钥必须严格保密。以下是对该主题的详细阐述: 1. RSA算法基础:RSA基于数论中的两个大...

    论文研究-RSA加密算法的改进和在OA系统中的应用 .pdf

    RSA算法作为非对称加密技术的代表,利用一对密钥——公钥和私钥,分别用于数据的加密和解密。公钥可以公开,私钥必须保密,这样的机制极大地增强了加密通信的安全性。由于其在理论和实际中的强大功能,RSA算法被国际...

    我的程序————RSA算法

    RSA算法是一种非对称加密算法,它在信息安全领域扮演着重要的角色,特别是在数据加密和数字签名方面。由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这个算法基于大整数因子分解的困难性,...

    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文件加密软件的设计与实现(源代码+论文).rar

    然后,使用Java编程语言实现RSA密钥对的生成、文件的读取、加密和解密操作。这部分涉及到Java的Math和Security包,特别是java.security.KeyPairGenerator和Cipher类。在JSP层面,开发者会创建相应的页面让用户上传...

    RSAjiami_rsa加密_

    如果你正在处理名为"RSAjiami"的C语言项目,你可能正在实现或使用一个简化的RSA加密库,可能包含公钥、私钥生成、加密和解密函数等功能。为了确保代码的正确性和安全性,记得进行充分的测试,并遵循最佳实践。

    RSA公私钥生成及加解密文件工具

    这是一个RSA加密解密软件,可以指定大素数P和Q的位数,生成RSA公钥和私钥。还可以用用来对字符型文本进行加解密。

Global site tag (gtag.js) - Google Analytics