java生成RSA公私钥字符串,简单易懂

java生成RSA公私钥字符串,简单易懂

解决方法:

1.下载bcprov-jdk16-140.jar包,参考:http://www.yayihouse.com/yayishuwu/chapter/1537

2.java代码

KeyPairGenerator keyPairGenerator = KeyPairGenerator

.getInstance("RSA");

keyPairGenerator.initialize(2048);

KeyPair keyPair = keyPairGenerator.generateKeyPair();

RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();

RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();

System.out.println("公钥:"+new BASE64Encoder().encodeBuffer(publicKey.getEncoded()));

System.out.println("私钥:"+new BASE64Encoder().encodeBuffer(privateKey.getEncoded()));

原文地址:https://www.cnblogs.com/chinaifae/p/10190925.html

时间: 2024-11-09 02:17:53

java生成RSA公私钥字符串,简单易懂的相关文章

Java中使用OpenSSL生成的RSA公私钥进行数据加解密

RSA是什么:RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响力的公钥加密算法,它能够 抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准.目前该加密方式广泛用于网上银行.数字签名等场合.RSA算法基于一个十分简单的 数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥. OpenSSL是什

Java中使用OpenSSL生成的RSA公私钥

RSA是什么:RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准.目前该加密方式广泛用于网上银行.数字签名等场合.RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥. OpenSSL是什么:众

RSA 公私钥 互换问题

关于 RSA,我的理解是: 按定义的话,公私钥是可以互换的 问题是常见的实现里面,保存“私钥”的那个数据结构或者文件,里面除了私钥所必需的那一对数之外,还有额外的信息(足以算出公钥来),所以绝对不能把这个“私钥”数据给其他人…… n=pq φ(n)=(p-1)(q-1) m^φ(n) ≡ 1 mod n 令 ed ≡ 1 mod φ(n) cipher=m^e mod n plain = cipher ^ d mod n ≡ m^ed mod n = m 理论上e与d是可以互换的,但是一般公钥指

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

非对称型加密非常适合多个客户端和服务器之间的秘密通讯,客户端使用同一个公钥将明文加密,而这个公钥不能逆向的解密,密文发送到服务器后有服务器端用私钥解密,这样就做到了明文的加密传送. 非对称型加密也有它先天的缺点,加密.解密速度慢制约了它的发挥,如果你有大量的文字需要加密传送,建议你通过非对称型加密来把对称型‘密钥’分发到客户端,及时更新对称型‘密钥’. package com.paul.module.common.util; import sun.misc.BASE64Decoder; impo

Python rsa公私钥生成 rsa公钥加密(分段加密)私钥加签实战

一般现在的SAAS服务提供现在的sdk或api对接服务都涉及到一个身份验证和数据加密的问题.一般现在普遍的做法就是配置使用非对称加密的方式来解决这个问题,你持有SAAS公司的公钥,SAAS公司持有你的公钥,你们就可以进行加密和签名的验证了. 先来看下两种在linux或者mac下面生成key pair的方法: 使用openssl 生成一把2048bit长度的钥匙对,首先我们生成一把.pem格式的私钥: openssl genrsa -out private_key.pem 2048 然后通过这把私

java中RSA加密解密算法简单实现

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.security.Key; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.

RSA算法原理(简单易懂)

1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法.在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为对称密码和公钥密码 对称密码:加密和解密使用同一种密钥的方式 公钥密码:加密和解密使用不同的密码的方式,因此公钥密码通常也称为非对称密码. 2. RSA加密 RSA的加密过程可以使用一个通式来表达 密文=明文EmodN密文=明文EmodN 也就是说RSA加密是对明文的E次方后除以N后求余数的过程.就这么简单?对,就是这么简单. 从

rsa公私钥加密原理

假设爱丽丝的公钥是(3233, 17):加入发送65,公钥加密后的结果是2790 私钥(3233, 2753) 收到公钥加密的数据2790后,进行2790^2753次方后,得出结果再mod 3233就会得到65,恢复出原来的数据据结果 公钥(n,e) 私钥(n,d) 总共有2个密钥的数据加密数据的过程,m的e次方,(m^e) mod 3233,那么结果就是2790,就是得出的结果

C#和JAVA的RSA密钥、公钥转换

C#的秘钥跟JAVA的密钥区别 RSA对于程序本身是没有区别的,其格式都是相同的.对于不同的程序来说,存储使用的语法(包装的类)会有所不同. RSA语法和语法标准有很多,大的类型大概分为ASN.1.PKCS.X.509. RSA语法介绍 ASN.1.PKCS是最初的,也是最主要的RSA公钥和私钥的语法标准,被RSA Lab所维护. ASN.1.PKCS#1都定义了公钥和私钥的类型--序列化的数字.为了下一个层次的抽象(适当的包装),现在一般使用的组合是:PKCS#8的私钥,X.509的公钥 .