一:生成RSA的私钥和公钥

1:RSA私钥生成

$resource = openssl_pkey_new();openssl_pkey_export($resource, $privateKey);echo($privateKey);

2:RSA公钥生成

$resource = openssl_pkey_new();$detail = openssl_pkey_get_details($resource);$publicKey = $detail['key'];echo($publicKey);

留神:
如果在生成私钥和公钥时呈现如下提醒:

须要将你的php环境下的openssl.cnf文件地址加到零碎环境变量中
减少变量名OPENSSL_CONF,变量值为openssl.cnf文件地址

二:RSA实现私钥加密和公钥解密

1:RSA私钥加密

$key = '123';//须要加密的字符串$pkey=openssl_pkey_get_private($privateKey);//$privateKey为私钥字符串openssl_private_encrypt($key, $encryptedData, $pkey);$encryptedData = base64_encode($encryptedData);echo($encryptedData);

2:RSA公钥解密

$pkey = openssl_pkey_get_public($publicKey);//$publicKey为公钥字符串openssl_public_decrypt(base64_decode($encryptedData), $data, $pkey);//$encryptedData为私钥加密串echo($data);

三:RSA实现签名和验签

1:私钥签名

$key = '123';//须要签名的字符串$pkey=openssl_pkey_get_private($privateKey);//$privateKey为私钥字符串openssl_sign($key, $signature,$privateKey);openssl_free_key($pkey);$signature = base64_encode($signature);echo($signature);

2:公钥验签

$pkey = openssl_pkey_get_public($publicKey);//公钥字符串$verify = openssl_verify($key, base64_decode($signature),$publicKey);//$key为须要签名的字符串//$signature为签名后字符串openssl_free_key($pkey);echo($verify);

依据如上咱们就能够实现RSA的加密解密和应用RSA的私钥公钥实现签名和验签性能了!