直接上代码:
<?php
class RSA{
var $public_key = '-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCytbQ5xzaIt+CssGzqrNmgFEY3GuhLq0cQO9/iA8Mb0h6WwYPx3yX1k6Jbqp0OIap68kiz19hMKkvvzIfiw85Kj7ljxcqYqJjaKKZkXp1GKYwLCh4MjJtuGVn3C25oEiLW7lTbH6NmrMbwe+lTHzTBC0NGHdU97O9ojp8KQHFq5QIDAQAB
-----END PUBLIC KEY-----'; //公密钥
var $private_key = '-----BEGIN RSA PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALK1tDnHNoi34KywbOqs2aAURjca6EurRxA73+IDwxvSHpbBg/HfJfWToluqnQ4hqnrySLPX2EwqS+/Mh+LDzkqPuWPFypiomNoopmRenUYpjAsKHgyMm24ZWfcLbmgSItbuVNsfo2asxvB76VMfNMELQ0Yd1T3s72iOnwpAcWrlAgMBAAECgYEApg6jfkC3UskR00VIn7OnsNDGAfRVv+JScSpBucFnLdXMKKd+lGSW4B+j8OuTbosn34B8v+gkC3oN/7Ac4ECz0RIoUjYUecA1ywIjVe4hXgGSawJGwnLtwUW1ne8W9FZblMcAoTyKVczahJS9uHOFPfWo0TUvVlkduln63lKwOwECQQDyYwIpWca+uVkKeck+WzMDkCGOjBycPb8oj5HLL7vpkQvXHStglNyABoTXm9EBqAKfbVvH1xxVBsyR3/2n0n8lAkEAvL8o8jVWLf5haKOmQXm2NvyYRkvI+q96/fYuBtANJ/XV0yXG+MGKiRmNX0ZYGfgroOOE/X7s9JksBzeSSbRQwQJBALssGY809HRzTH76bJzqcApgUolxSOaeB++abkspIULL7wi+TbDXQy7Z2dtlR5Cv3Naf7C/1vLsr9Ozwuz/NHMECQEUK1AqNciHO7IjfXACVag8BJR6JuFHjAOWHONzrG/TjGz1qkzcJbQirnSgdzjppqmPm9g3YcQskQJO/QzbMy8ECQBKwVvZz+OBeSyNEUa4b71Z0JmMgCZIH3yOCbjT13bHgrewWc1cb1pBjkd3tiOHKL2Ljk6QeP99opaCQWuKcMxI=
-----END RSA PRIVATE KEY-----'; //私密钥
/**
* 用私密钥加密
*/
public function private_encrypt($input) {
$privateKey = openssl_pkey_get_private($this->private_key);
openssl_private_encrypt($input,$output, $privateKey);
return base64_encode($output);
}
/**
* 解密 私密钥加密后的密文
*/
public function public_decrypt($input) {
$public_key = openssl_pkey_get_public($this->public_key);
openssl_public_decrypt(base64_decode($input),$output,$public_key);
return $output;
}
/**
* 用公密钥加密
*/
public function public_encrypt($input) {
$public_key = openssl_pkey_get_public($this->public_key);
openssl_public_encrypt($input,$output,$public_key);
return base64_encode($output);
}
/**
* 解密 公密钥加密后的密文
*/
public function private_decrypt($input) {
$privateKey = openssl_pkey_get_private($this->private_key);
openssl_private_decrypt(base64_decode($input),$output,$privateKey);
return $output;
}
}
$rsa = new RSA();
//
$str = '加密解密';
$str = $rsa->public_encrypt($str); //用公密钥加密
echo $str,'</br>';
$str = $rsa->private_decrypt($str); //用私密钥解密
echo $str,'</br>';
//=============================================================
$str = $rsa->private_encrypt($str); //用丝密钥加密
echo $str,'</br>';
$str = $rsa->public_decrypt($str); //用公密钥解密
echo $str,'</br>';
Comments | NOTHING