在网上找了下RSA的密钥的创建,结果全是用java序列化PublicKey和PrivateKey来保存,就自己写了个RSA公钥和私钥的创建,及进行Base64编码后保存。
这里用到了 bcprov-jdk16-1.4.5.jar ,可以在 http://www.bouncycastle.org/ 官方主页上下载.
public static void createKeyPairs() throws Exception {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
// create the keys
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "BC");
generator.initialize(512, new SecureRandom());
KeyPair pair = generator.generateKeyPair();
PublicKey pubKey = pair.getPublic();
PrivateKey privKey = pair.getPrivate();
byte[] pk = pubKey.getEncoded();
byte[] privk = privKey.getEncoded();
String strpk = new String(Base64.encodeBase64(pk));
String strprivk = new String(Base64.encodeBase64(privk));
System.out.println("公钥:" + Arrays.toString(pk));
System.out.println("私钥:" + Arrays.toString(privk));
System.out.println("公钥Base64编码:" + strpk);
System.out.println("私钥Base64编码:" + strprivk);
X509EncodedKeySpec pubX509 = new X509EncodedKeySpec(Base64.decodeBase64(strpk.getBytes()));
PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decodeBase64(strprivk.getBytes()));
KeyFactory keyf = KeyFactory.getInstance("RSA", "BC");
PublicKey pubkey2 = keyf.generatePublic(pubX509);
PrivateKey privkey2 = keyf.generatePrivate(priPKCS8);
System.out.println(pubKey.equals(pubkey2));
System.out.println(privKey.equals(privkey2));
}
分享到:
相关推荐
Java 生成RSA密钥进行数据加密解密 支持超长字符分区 ,同时支持本地读取生成的密钥文件和远程服务器上存放的秘钥文件
详细步骤: 1.根据开发语言选择密钥格式。 2.选择密钥长度,新建应用请务必使用2048位。...3.点击 “生成密钥”,会自动生成商户应用公钥和应用私钥。 4.点击“打开密钥文件路径”,即可找到生成的公私钥。
Java RSA加密密钥生成器
支付宝的非对称rsa密钥生成工具
C#与JAVA调用密钥的格式不一样,需要转换,同时还提供了密钥生成功能
生成RSA加密解密使用的密钥对项目
JDK 1.7以上版本(含) ...生成1024位的RSA密钥对; java -jar keygen.jar rsa 生成1024为的DSA密钥对 java -jar keygen.jar dsa 版权所有, 公布源码, 随意转载修改再发布, 注明出处即可 编译后的JAR下载 ...
NULL 博文链接:https://bijian1013.iteye.com/blog/2339883
Delphi使用OpenSSL,根据RSA密钥文件(.pem)进行签名。Delphi7可用,解决UTF8中文奇数bug,签名结果与java常用的MD5withRSA算法、PHP的openssl_sign($data, $encrypted, $private_key, OPENSSL_ALGO_MD5)函数算法得到...
本地生成RSA密钥对工具包,运行直接生成,1024和2048位都可以,修改配置文件config.properties中的参数即可,运行后本目录下生成4个文件:privateKey.txt,publicKey.txt,privateKey.pem,publicKey.pem
根据git项目个人二次开发的rsa和ecdsa密钥生成工具,注意密钥长度只有2种:256和2048,这个是打好包的win64版本,类型现在只有rsa和ecdsa两个
调用keytool自动生成密钥, 包括rsa密钥定义和一个调用可执行文件的类
Java平台实现RSA算法,包括密钥的生成及加解密,备有源代码及实习总结
NULL 博文链接:https://bijian1013.iteye.com/blog/2339874
用java代码生成公钥私钥密钥对,公钥加密私钥解密,私钥加密公钥解密。直接导入idea,可直接运行。小编正在看区块链的多重加密,看到这儿了就写了一个demo,用于理解加解密。
JDK 1.7以上版本(含) 生成1024位的RSA密钥对; java -jar keygen.jar rsa 生成1024为的DSA密钥对 java -jar keygen.jar dsa 版权所有, 公布源码, 随意转载修改再发布, 注明出处即可
弥补了tE!RSATools公钥长度低于32bit的缺点,另外速度更快。
可以直接运行成功的RSA加密解密示例 JAVA端采用公钥加密,服务端C#采用私钥解密。
java rsa 加解密 包含界面,随机生成密钥
前端js加密, 后端java解密,引用项目工程里面js、java代码到自己工程里面即可,使用方便, 可以自行生成密钥