RSA加密

来源:互联网 发布:艾灸治疗仪 淘宝 编辑:程序博客网 时间:2024/05/21 11:19

<?php/** * RSA加密类 *  * @package libs * @category API * @author 周阳<305846826@qq.com> * @copyright 街网科技 * @version 2.0 * @link http://www.jieone.com */class RSA{    /**     * 私钥     * @access private     * @var unknown     */private $private_key = ''; /**     * 公钥     * @access private     * @var unknown     */private $public_key = '';/** * 密钥,8位数,主要用于PHP和.NET交互数据 * @var unknown */private $key='xxxxxxxx';/** * 私钥加密 * @access public * @param string $data 需要加密的数据 * @return string Base64 */public function private_encrypt($data){if(!openssl_private_encrypt($data,$encrypted,$this->private_key)){return "";}return base64_encode($encrypted);}/** * 私钥解密 * @access public * @param string $data 需要解密的数据 * @return string  */public function private_decrypt($data){$data=base64_decode(str_replace(" ","+",$data)); if (!openssl_private_decrypt($data, $decryptData, $this->private_key)) {return "";}return $decryptData;}/** * 公钥加密 * @access public * @param string $data 需要解密的数据 * @return string */public function public_encrypt($data){if(!openssl_public_encrypt($data,$encrypted,$this->public_key)){return "";}return base64_encode($encrypted);}/** * 公钥解密 * @access public * @param string $data 需要解密的数据 * @return string */public function public_decrypt($data){$data=base64_decode(str_replace(" ","+",$data)); if (!openssl_public_decrypt($data, $decryptData, $this->public_key)) {return "";}return $decryptData;}/** * 加密,主要用于PHP和.NET交互数据 * @access public * @param string $data 需要解密的数据 * @return string */public function encrypt($string) {       //加密方法    $cipher_alg = MCRYPT_TRIPLEDES;    //初始化向量来增加安全性    $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);         //开始加密    $encrypted_string =mcrypt_encrypt($cipher_alg, $this->key, $string, MCRYPT_MODE_ECB, $iv);    return base64_encode($encrypted_string);//转化成16进制}/** * 解密,主要用于PHP和.NET交互数据 * @access public * @param string $data 需要解密的数据 * @return string */function decrypt($string) {$string=base64_decode(str_replace(" ","+",$string));         //加密方法    $cipher_alg = MCRYPT_TRIPLEDES;    //初始化向量来增加安全性    $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);         //开始解密    $decrypted_string =mcrypt_decrypt($cipher_alg, $this->key, $string, MCRYPT_MODE_ECB, $iv);    return trim($decrypted_string);}}

0 0
原创粉丝点击