Android-Openssl创建RSA公钥和私钥

Openssl下载  https://oomake.com/download/openssl

Android-RSA 分段加密解密

Android-Openssl创建RSA公钥和私钥

Android-AES加解密

Android-DH 秘钥交换

1.配置 Openssl 环境变量

安装完 Openssl  以后将 Openssl bin 目录路径配置到系统 Path 环境变量中去,例如我的安装bin 目录路径为:D:\Win64OpenSSL-1_1_0i\OpenSSL-Win64\bin,就将该路径配置到系统 Path 环境变量中,方便在命令行窗口使用 Openssl 。

2.使用 Openssl 生成 RSA 私钥

打开 AndroidStudio 的 Terminal 窗口(Windows 命令行窗口也可以,只不过生成的私钥或公钥文件保存在Openssl 的 bin 目录下,可以在 -out 后面随便指定输出文件路径例如: D:\pkcs1_rsa_private_key.pem),输入 openssl,进入 Openssl 程序。

输入命令: genrsa -out pkcs1_rsa_private_key.pem 1024 生成 RSA 私钥,如下图:

生成 RSA 私钥

生成的 RSA 私钥文件名称是:pkcs1_rsa_private_key.pem,文件保存在项目目录下。私钥长度是 1024 字节,格式是 Openssl 默认的 pkcs1 格式。文件打开后是一个 Base64 编码的字符串。

3.使用 RSA 私钥生成 RSA 公钥

输入命令: rsa -in pkcs1_rsa_private_key.pem -pubout -out pkcs1_rsa_public_key.pem 

生成 RSA 公钥

生成的 RSA 公钥文件名称是:pkcs1_rsa_public_key.pem,文件保存在项目目录下。文件打开后是一个 Base64 编码的字符串。

4.对私钥进行 PKCS8 编码

因为 Java 不支持使用 PKCS1 格式的公钥和私钥,所以要对私钥进行 PKCS8 编码才能在 Java 中使用。

输入命令: pkcs8 -topk8 -in pkcs1_rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt

对私钥进行 PKCS8 编码

输入该命令不会有任何返回,只会在项目目录中多一个 pkcs8_rsa_private_key.pem 文件,该文件就是 PKCS8 编码后的私钥文件。

5.使用 PKCS8 编码后的私钥重新生成 RSA 公钥

输入命令:rsa -in pkcs8_rsa_private_key.pem -pubout -out pkcs8_rsa_public_key.pem

使用 PKCS8 编码后的私钥重新生成 RSA 公钥

pkcs8_rsa_private_key.pem 和 pkcs8_rsa_public_key.pem 文件可以直接在 Java 中进行 RSA 加解密。

你可能感兴趣的:(Android-Openssl创建RSA公钥和私钥)