`

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

}

分享到:
评论

相关推荐

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

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

    java源码包---java 源码 大量 实例

    Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个...

    JAVA上百实例源码以及开源项目

    Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个...

    JAVA上百实例源码以及开源项目源代码 java开源包2

    Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个...

    JAVA 2平台安全技术-结构,API设计和实现

    本书首先概述了计算机和网络安全概念并解释了Java安全模型,并在此基础上,详细描述了Java 2平台中新增加的许多安全结构方面的措施,同时对Java安全性的实施提出了使用指导,描绘了如何定制、扩展和精化安全结构以及...

    JAVA上百实例源码以及开源项目源代码

    Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个...

    java源码包2

    Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例...

    java源码包4

    Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例...

    java源码包3

    Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例...

    Java 2平台安全技术-结构,API设计和实现

    7.5.2 实例2:产生公钥/私钥对 133 7.5.3 实例3:产生并且验证签名 134 7.5.4 实例4:读取包含证书的文件 135 7.6 标准名 136 7.6.1 消息摘要算法 136 7.6.2 密钥和参数算法 136 7.6.3 数字签名算法 137 7.6.4 随机数...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示...

    NFCP2PRSADemo:NTUST RFIDSecurity 2014 秋季 - 编程作业 #4

    NFCP2PRSADemo 103-1 NTUST RFID资讯安全Programming...将使用者的对称式金钥使用RSA 公钥加密后建立TNF_WELL_KNOWN with RTD_TEXT 型态的Record。 将加密讯息与加密金钥透过Android Beam 功能发送NDEF Message。 Rece

    《计算机网络安全》试题及答案.docx

    B ) 非对称算法的公钥 对称算法的密钥 非对称算法的私钥 CA中心的公钥 以下不属于代理服务技术优点的是( D ) 可以实现身份认证 内部地址的屏蔽和转换功能 可以实现访问控制 可以防范数据泄密 包过滤技术与代理...

    计算机网络安全题库(67道).docx

    11、 数字证书采用公钥体制时,每个用户设定一把公钥,由本人公开,用其进行()——[单选题] A 加密和验证签名 B 解密和签名 C 加密 D 解密 正确答案:A 计算机网络安全题库(67道)全文共12页,当前为第3页。 计算机网络...

    《网络安全与管理第二版》-网络安全试题5.doc

    在混合加密方式下,真正用来加解密通信过程中所传输数据(明文)的密钥是( ) A、非对称算法的公钥 B、对称算法的密钥 C、非对称算法的私钥 D、CA中心的公钥 5. 以下不属于代理服务技术优点的是( ) A、可以实现...

    网络安全试题.doc

    非对称算法的私钥 D. CA中心的公钥 5. 以下不属于代理服务技术优点的是( ) A. 可以实现身份认证 B. 内部地址的屏蔽和转换功能 C. 可以实现访问控制 D. 可以防范数据驱动侵袭 6. 包过滤技术与代理服务技术相比较...

    网络安全与管理(第二版)-网络安全试题4.doc

    非对称算法的私钥 D. CA中心的公钥 5. 以下不属于代理服务技术优点的是( ) A. 可以实现身份认证 B. 内部地址的屏蔽和转换功能 C. 可以实现访问控制 D. 可以防范数据驱动侵袭 6. 包过滤技术与代理服务技术相比较...

Global site tag (gtag.js) - Google Analytics