一、取公钥,例子中server.crt放在D盘根路径下
//获得给定格式的证书工厂 CertificateFactory cf = CertificateFactory.getInstance("X.509"); //读取证书的输入流 FileInputStream fis = new FileInputStream("D:/server.crt"); //获取证书对象 Certificate cert = cf.generateCertificate(fis); //关闭输入流 fis.close(); //获取公钥 PublicKey publicKey = cert.getPublicKey();
二、获取私钥
1.直接读取server.key文件会报错:
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : algid parse error, not a sequence
需要把server.key文件转换为PKCS8格式:
命令:
openssl pkcs8 -topk8 -nocrypt -in server.key -out myrsakey_pcks8
生成一个PKCS8格式的秘钥myrsakey_pcks8
myrsakey_pcks8的内容:
-----BEGIN PRIVATE KEY----- MIICXQIBAAKBgQDB49bqrPV4BEmoWmBsLy/JNVbWC1Rz/tkKAjvszeE+8cQwxmYQ oJMKXcmYSV9NF/Ftxj+Fydu9iHM8FzEQjDoB9pxPIfV8n4+F1R0y5rrTzBwYXuAm JSo0OnLGXVhJSjwOGu0vRu4SoSH+g0QKHuPDoOAfiKdnNQuJF0TGug5yGwIDAQAB AoGAVqOd9K2m3qNj2qPP9Ge9fbak/+5+JXsatvs6ld2Fql/UYEs3bnSiX/56x975 g/SQAJKW7gy+cVoYzCA8330ZqeBq4GFhisXeCL7YDakFraFHALcYo19BWSc02N96 cuq9qU9E0ZMNDBPlLrUrJ34i33B4eX+h1CLhO7rJzoyMPZkCQQD62T5uZqTR/5Aw Uw3F/IGctwVUMRu9VeLVYnDSIKZasalDXujGtFjyhk9df+mjSq6reH/gg5PLBSPv WErT5B6lAkEAxd8nbXERRqLhQlnzL6CnoqpwjPL6E7pnb7qIrgYchaONUQvlCEaH 31uy1VyDxueB1UwfY6VjZGIkd6SmkqYxvwJBAO2PKVnCaVra7UFmlkemz1SL20cV TtDq8mvk0zWcaA7B66t6yXXMu+PKIIVKqwfSpUKMVoZX9XIyBwsXEZ5DjmUCQQDB 9v1cT/DicDomY6x6rJ6HW1JXKLux6REKOi1PgdglvGyD3QgXc6QvdGE6u6TFrxzb bPJ8KJzkwzwCOFm8+cNbAkBue461A4i616SH7Q/VQ3In0qGTZ5QwHksHV86vbfmM S/v6T/SOYqP/zDmMuZhsa+FyBrV8feYOb4vgbXoDaJtM -----END PRIVATE KEY-----
2.假设myrsakey_pcks8在D盘根目录下,
//获得指定格式的KEY工厂 KeyFactory keyFactory = KeyFactory.getInstance("RSA"); //读取PKCS8文件 BufferedReader br = new BufferedReader(new FileReader("D:/rsakey_pcks8")); //rsakey_pcks8首行注释-----BEGIN PRIVATE KEY----- String s = br.readLine(); StringBuffer sb = new StringBuffer(); //读取rsakey_pcks8第二行 s = br.readLine(); //循环读取直到最后一行 while (s.charAt(0) != '-') { sb.append(s + "\r"); s = br.readLine(); } //使用base64解码,这里使用org.apache.commons.codec.binary.Base64 byte[] keybyte = Base64.decodeBase64(sb.toString()); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keybyte); //获取私钥 PrivateKey privateKey = keyFactory.generatePrivate(keySpec);三、使用公钥加密
相关推荐
推荐在线生成密钥对的网站:https://www.bchrt.com/tools/rsa/ ...公钥和私钥是在网上随机生成的,你也可以替换成你的密钥 同样你也可以更改密钥的文件名和密钥的长度类型 记得在cpp中做相应的更改
PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解 php代码简单生成 容易理解
生成RSA公钥和私钥的工具:Windows版OpenSSL 亲测可用。提供32位系统和64位系统版本
openssl 中把pem格式的SM2密钥,解析成EC_KEY格式的key,然后解析出key中公钥和私钥
BBRSACryptor, 使用OpenSSL进行公钥和私钥的加解密
1.go生成rsa证书 自签名证书 2.go生成ecc证书 自签名证书 ...4.对自已生成的公钥私钥进行签名,得到签名证书crt 5.通过设置云dns账号直接生成freessl证书 6.openssl一些惯用方法介绍 7.如生成pfx格式的证书包文件的方法
为需要的内容不多,主要是RSA加解密部分,所以就删除了不必要的,公钥私钥...回来实际使用中,本地保存公钥,发送数据时候数据公钥加密过,然后在服务器端用私钥解密,数据合法再处理,这样数据就安全啦。@千面萌萌。
php 生成加密公钥加密私钥实例详解 生成公钥私钥 win下必须要openssl.cof支持 liunx一般已自带安装 $config = array( //"digest_alg" => "sha512", "private_key_bits" => 512, //字节数 512 1024 2048 4096 ...
C# RSA加密、解密、加签、验签、支持JAVA格式公钥私钥、PEM格式公钥私钥、.NET格式公钥私钥 对应文章: http://blog.csdn.net/gzy11/article/details/54573973
使用openssl生成证书,有详细的步骤说明,亲测可用。还有一些关于证书的一些常用转换操作介绍
通过OpenSSL生成的ssl证书,用于windows下用nginx配置https服务器( OpenSSL创建证书) 无需再下载OpenSSL,配置OpenSSL相关环境,在进行命令生成证书
基于openssl写的RSA的公钥加密,私钥解密,私钥加密,公钥解密的测试例子,密钥类型是rsa1024的PEM格式。
使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密。 1.安装openssl和php的openssl扩展 2.生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护...
1、打开 openssl.exe 执行如下命令 2、执行 genrsa -out d:\openssl_rsa_private.pem 1024 3、执行 rsa -in d:\openssl_rsa_private.pem -pubout -out d:\openssl_rsa_public.pem
基于linux c openssl 库实现公钥签名私钥验签 公钥加密和私钥解密
利用OpenSSL生成证书详解,利用OpenSSL生成证书详解
openssl生成RSA私钥公钥,该压缩包包含详细的使用说明及DEMO
下载ssl比较复杂,操作也不方便。直接使用该安装包,安装后,启动bin目录下openssl.exe,然后使用命令创建公钥和私钥。具体命令详见我的博客。
OpenSSL> genrsa -out rsa_private_key.pem 2048 (生成私钥) OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out rsa_private_key_pkcs8.pem (备注:Java 开发者需要将私钥转换...