Linux 生成RSA公私钥
•
RSA
1、生成原始RSA私钥文件
openssl genrsa 命令是会用来生成 RSA 私有秘钥,不会生成公钥,因为公钥提取自私钥。生成时是可以指定私钥长度和密码保护。
语法
openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]
使用举例
openssl genrsa -out rsa_private_key.pem
从输出可以看出,密钥长度默认是2048bit。我们也可以指定密钥长度,密钥长度越长越安全,但使用密钥进行加解密时所耗费的时间也会变长。非对称密钥提高安全性的同时也带来了算法所耗费的大量时间,非对称密钥不对大块数据进行加密,应用领域是数字签名,密钥分发等小数据加密。
参数解析:
- openssl:是一个自由的软件组织,专注做加密和解密的框架;
- genrsa:指定了生成了算法使用RSA;
- -out:后面的参数表示生成的key的输入文件;
- -passout arg:对生成的rsa私钥文件施加密码保护,例:-passout pass:123;
- -des:采用des算法加密;
- numbits:表示的是密钥长度,单位字节(bit),至少为500位长,一般推荐使用1024位;
2、把RSA私钥转换成PKCS8格式
Java需要使用的私钥需要经过PKCS#8编码,PHP程序不需要
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem
参数解析:
-nocrypt:不采用任何二次加密
3、由原始的rsa私钥文件生成公钥文件
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem