您当前的位置:首页 > PHP 网站首页PHP

PHP 加密方式方法之RSA加解密

转载请注明出处:黄桂林的博客 huangguilin.com

该RSA加解密方法为对称加密

<?php
class RsaModel{
    const PRIVATE_KEY_FILE_PATH = './rsa_private_key.pem';
    const PUBLIC_KEY_FILE_PATH = './rsa_public_key.pem';

    public static function encrypt($orignData) {
        //密钥文件的路径
        $privateKeyFilePath = self::PRIVATE_KEY_FILE_PATH;
        extension_loaded('openssl') or die('php需要openssl扩展支持');
        (file_exists($privateKeyFilePath)) or die('密钥的文件路径不正确');
        //生成Resource类型的密钥,如果密钥文件内容被破坏,openssl_pkey_get_private函数返回false
        $privateKey = openssl_pkey_get_private(file_get_contents($privateKeyFilePath));

        ($privateKey) or die('密钥不可用');
        //加密以后的数据,用于在网路上传输
        $encryptData = '';
        ///////////////////////////////用私钥加密////////////////////////
        if (openssl_private_encrypt($orignData, $encryptData, $privateKey)) {
            return $encryptData;
        } else {
            return "a";
        }
    }

    public static function decrypt($encryptData) {
        //公钥文件的路径
        $publicKeyFilePath = self::PUBLIC_KEY_FILE_PATH;
        extension_loaded('openssl') or die('php需要openssl扩展支持');
        (file_exists($publicKeyFilePath)) or die('公钥的文件路径不正确');
        //生成Resource类型的公钥,如果公钥文件内容被破坏,openssl_pkey_get_public函数返回false
        $publicKey = openssl_pkey_get_public(file_get_contents($publicKeyFilePath));
        ($publicKey) or die('公钥不可用');
        //解密以后的数据
        $decryptData = '';
        ///////////////////////////////用公钥解密////////////////////////
        if (openssl_public_decrypt($encryptData, $decryptData, $publicKey)) {
            return $decryptData;
        } else {
           return "a";
        }
    }

}

?>

创建公钥私钥publik.key  private.key

转载请注明出处:黄桂林的博客
转载请注明出处:黄桂林的博客

关键字rsa / 加密 / 解密 / php / openssl /