代码以PHP为例

/**
 * ----------------结果输出----------------
 * 原数据:f1e46f328e6decd56c64dd5e761dc2b7
 * 签名:LYfWbbZ/goe7dnMnGHu8w+008EyhxO7ZiC6lAh59RPSqnc5k2Fm2Jh8yPT+Bhp4r7F7QSZmpMGWyI7F8ig0X91aB34sPybEAE9i3h/qsW9Tb2w32BHRmA/6Z6vm7a6vk1v8uLAgPF870MUn+XUIG63zScqe6YG7KZgw5F/i9HWo=
 * 验签:1
 * 私钥加密:NFraAQrbZvT2rW4BZ/LvcIBQRzrBzHGrNSK88m2uvT6bF/Ks6C1vA6DE43hcgLSO67ZwL/1ViZm5bhu5r1rOaEYdy0T94UNyiMGNbYzkvEl1vKM2/9NYCI1cnqy83Kr7pWO0iZM4xBYeC+wNOzOwyIGHLOJ7zpSqwJPHj36j7J0=
 * 公钥解密:f1e46f328e6decd56c64dd5e761dc2b7
 * 公钥加密:SkLX7mEbg8GNMsfTaDA8HOBGtRDGLOQCM4oW9emN9pkiRPEDuUcQQwrtNmBv7BTGRBvCwDLOe24ZZgDqlZ/5GnB4lCXrnFbfKCQ87Ve9q2OS0esLhtKGNGKbiBxPrcQgGP2OwBjrOsx30bWtTkQyPUl7cj7J+jlxMekZP6T2hUc=
 * 私钥解密:f1e46f328e6decd56c64dd5e761dc2b7
 */
$data = json_encode([1,2,3]);
echo "原数据:".$data.'<br>';

$key = dirname ( __FILE__ ) . "./config/openssl/rsa_private_key.pem";
$priKey = file_get_contents($key);
$result = openssl_get_privatekey($priKey);
openssl_sign($data, $sign, $result);
openssl_free_key($result);
echo "签名:".$sign.'<br/>';

$key = dirname ( __FILE__ ) . "./config/openssl/rsa_public_key.pem";
$pubKey = file_get_contents($key);
$result = openssl_get_publickey($pubKey);
$return = openssl_verify($data,$sign,$result);
openssl_free_key($result);
echo "验签:".$return.'<br/>';

$key = dirname ( __FILE__ ) . "./config/openssl/rsa_private_key.pem";
$priKey = file_get_contents($key);
$result = openssl_get_privatekey($priKey);
openssl_private_encrypt($data, $crypt, $result);
echo "私钥加密:".$crypt.'<br/>';

$key = dirname ( __FILE__ ) . "./config/openssl/rsa_public_key.pem";
$pubKey = file_get_contents($key);
$result = openssl_get_publickey($pubKey);
openssl_public_decrypt($crypt, $crypt, $result);
echo "公钥解密:".$crypt.'<br/>';


$key = dirname ( __FILE__ ) . "./config/openssl/rsa_public_key.pem";
$pubKey = file_get_contents($key);
$result = openssl_get_publickey($pubKey);
openssl_public_encrypt($data, $crypt, $result);
echo "公钥加密:".$crypt.'<br/>';

$key = dirname ( __FILE__ ) . "./config/openssl/rsa_private_key.pem";
$priKey = file_get_contents($key);
$result = openssl_get_privatekey($priKey);
openssl_private_decrypt($crypt, $crypt, $result);
echo "私钥解密:".$crypt.'<br/>';

附带openssl的公钥/秘钥生成方法

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

吃饭饭睡觉觉
62 声望4 粉丝