OpenSSL生成私钥和公钥

1.生成私钥

-- 生成 RSA 私钥(传统格式的)

openssl genrsa -out rsa_private_key.pem 1024

-- 将传统格式的私钥转换成 PKCS#8 格式的(JAVA需要使用的私钥需要经过PKCS#8编码,PHP程序不需要,可以直接略过)

openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

2.生成公钥

-- 生成 RSA 公钥(php和java都用转换前私钥生成公钥)

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

3.OpenSSL私钥生成签名

//获取私钥资源
$re = openssl_get_privatekey($privateKeyFilePath);
//生成签名
openssl_sign($data, $sign, $re);
//base64_encode防止乱码
$sign = base64_encode($sign);

4.OpenSSL公钥验签

$re = openssl_get_publickey($publicKeyFilePath);
$result = openssl_verify($data, $sign, $re);

猜你喜欢

转载自www.cnblogs.com/zhangjianqiang/p/10308029.html