本文实例讲述了Java生成非对称型加密公钥和私钥的方法。分享给大家供大家参考。具体如下:

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

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

KeyRSA.java如下:

import java.io.*;

import java.security.*;

import javax.crypto.*;

import javax.crypto.spec.*;

/**

* RSA非对称型加密的公钥和私钥

*/

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 {

new KeyRSA(1024, "c:/key_rsa");

}

catch (IOException ex) {

}

catch (NoSuchAlgorithmException ex) {

}

}

}

希望本文所述对大家的java程序设计有所帮助。

java 公匙私匙_Java生成非对称型加密公钥和私钥的方法相关推荐

  1. JAVA产生加密公钥私钥_Java生成非对称型加密的公钥和私钥

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.io.*; import java.security.*; imp ...

  2. Git简单生成公钥和私钥的方法及git ssh key配置

    Git简单生成公钥和私钥的方法 Git安装完之后,需做最后一步配置.打开git bash,分别执行以下两句命令 git config --global user.name "用户名" ...

  3. 【加密】对称加密DES和非对称加密AES、数字签名|非对称加密--公钥和私钥的区别

    目录 对称加密DES和非对称加密AES.数字签名 对称加密 1.1 定义 1.2 优缺点 1.3 常用对称加密算法 非对称加密( Asymmetric Cryptography ) 非对称加密(现代加 ...

  4. java 一维码架包_Java 生成、识别条形码

    条形码是由一定的字符,数字及符号组成,用以表达一组信息的图形标识符.它可以标出物品的商品名称.生产日期.图书分类号,邮件起止地点等.因而在商品流通.图书管理.邮政管理等许多领域得以广泛的应用.本文将通 ...

  5. java将字符串分段输出_java输入字符串并将每个字符输出的方法

    java输入字符串并将每个字符输出的方法 如下所示: import java.util.Scanner; public class Main{ public static void main(Stri ...

  6. java对sha1的解密_Java实现文件的加密解密功能示例

    本文实例讲述了java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.file; import java.io ...

  7. RSA非对称加密算法之公钥和私钥详细介绍

    转载来自https://www.zhihu.com/question/25912483/answer/31653639 RSA的加密算法 RSA的加密算法.我们从公钥加密算法和签名算法的定义出发,用比 ...

  8. java随机产生字母排序_Java生成含字母和数字的6位随机字符串

    本文实例为大家分享了Java生成6位随机字符串的实现代码,具体内容如下 package com.amos.tools; import java.util.ArrayList; import java. ...

  9. java 新浪短链接_java生成短连接(调用新浪微博api生成)

    java生成短连接 主要利用新浪微博提供的api生成 import java.io.IOException; import java.util.UUID; import com.alibaba.fas ...

最新文章

  1. Tensorflow yolov3 Intel Realsense D435 双摄像头下测试python多线程(假的多线程)self.predict()函数运行时间(191204)
  2. 字少事大|两张表格教你快速选择适合的MCU进行物联网开发
  3. css怎样使鼠标移到div上显示手型
  4. Scrapy中的item是什么
  5. 天天学习: 关于美资,台资和国企比较分析
  6. [aminer] 2020清华大学人工智能发展报告pdf
  7. 如何学习-如何学习数据库
  8. APP专项测试——弱网测试
  9. 哇塞,原来自己写 Google Chrome 浏览器扩展(插件)这么容易!
  10. 在新旧交替的过程中,我们成长着—导师制,舞台和挑战
  11. 联想手机鸿蒙刷机包,联想手机刷机教程 卡刷
  12. 记一次连接数据库报错The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zo
  13. XSS漏洞的原理与测试解决方案笔记
  14. 工业机器人 郝卫东_川崎焊接机器人控制系统设计开发
  15. Linux共享库编程方法,Linux共享库c
  16. 存储过程中的when others then 和 raise 何意义?
  17. 【019】基于51单片机的交通灯Proteus仿真设计
  18. C#嵌入IronPython脚本示例(hello world)
  19. java赵云主角兵器谱游戏_完美武将:赵云兵器大盘点
  20. 计算成绩的最大值、最小值、平均值、标准差

热门文章

  1. Android Studio版本控制之SVN图文教程篇
  2. 【2021年CCPC河南省赛】闯关游戏
  3. 【风光摄影后期笔记】PS——亮度蒙版(1)笔刷
  4. AndroidM及以上,接听电话之后5S 灭屏
  5. VR的国内研究现状及发展趋势
  6. 今年跳槽稳了,60K*16 薪!
  7. MSCKF(五)——Observability-Constrainted方法
  8. QQ群是小人聚集的场所,天大地大,我就不信你们能全网封杀我
  9. ABAP ALV 总结
  10. Unity Gameobject类测试