php rsa加密(非对称)实例 以及使用哈希256进行加密
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
string
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string
int
): bool
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
string
bool
array
): string
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” 参数。