php rsa加密(非对称)实例 以及使用哈希256进行加密

发布时间 2024-01-10 11:20:11作者: 王越666
function getEncryptionUserID($client_secret): string
{

    $str = "
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpw/k/rPHx4c1nEO8lQr8Fkz2MMTnqNbspRox1f2snoDNcssTQxg9TyBOMujQy14eRibKE+X+qPVeZJyyfruTrtvB4EomJL7v4URcacg7H00A2HL1nf7DTtp8oRpVIssATcrgjwg60DSyDamMlnXCv9TiUKb+jRqWBkZNGhPh9UwIDAQAB
-----END PUBLIC KEY-----
";

    $a = openssl_pkey_get_public($str);

    //对数据公钥加密及私钥解密
    $string = $client_secret;

    $r= openssl_public_encrypt($string, $encrypted, $a);
    if ($r) {
        $b = base64_encode($encrypted);
    }

    return $b;
}

openssl_pkey_get_public()函数将返回您的公钥。

函数openssl_pkey_get_public()从给定证书中返回公钥,以便可以与其他函数一起使用。

 

openssl_public_encrypt(
    string $data,
    string &$encrypted_data,
    OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
    int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_public_encrypt() 使用公钥 public_key 解密数据 data 并且将结果保存到变量 encrypted_data 中。加密的数据可以通过 openssl_private_decrypt() 函数解密。

该函数可以用来加密数据,供该公钥匹配的私钥拥有者读取。 它也可以用来在数据库中存储安全数据。

 

哈希算法实例:

$hash_it = hash("sha256", $client_id . $data. $pubKey, false);
 
hash(
    string $algo,
    string $data,
    bool $binary = false,
    array $options = []
): string

参数 ¶

algo

要使用的散列算法,例如:“md5”、“sha256”、“haval160,4”等。在 hash_algos() 中查看支持的算法。

data

要进行散列运算的消息。

binary

设置为 true 输出原始二进制数据, 设置为 false 输出小写 16 进制字符串。

options

各种散列算法的一系列选项数组。目前 MurmurHash 算法仅支持 “seed” 参数。