PHP7.1 OpenSSL实现对称加密AES和非对称加密RSA

vitoland2017年08月11日代码片段2500

AES 对称加密

<?php
header('Content-Type:text/plain;charset=utf-8');
$data='phpbest';
//echobase64_encode(openssl_random_pseudo_bytes(32));
$key='oScGU3fj8m/tDCyvsbEhwI91M1FcwvQqWuFpPoDHlFk=';
//echobase64_encode(openssl_random_pseudo_bytes(16)); echo'内容:'.$data."\\n";
$iv='w2wJCnctEG09danPPI7SxQ==';
$encrypted=openssl_encrypt($data,'aes-256-cbc',base64_decode($key),OPENSSL_RAW_DATA,base64_decode($iv));
echo'加密:'.base64_encode($encrypted)."\\n";
$encrypted=base64_decode('To3QFfvGJNm84KbKG1PLzA==');
$decrypted=openssl_decrypt($encrypted,'aes-256-cbc',base64_decode($key),OPENSSL_RAW_DATA,base64_decode($iv));
echo'解密:'.$decrypted."\\n";
?>

RSA: 用openssl生成rsa密钥对(私钥/公钥):
openssl genrsa -out rsa_private_key.pem 2048
openssl rsa -pubout -in rsa_private_key.pem -out rsa_public_key.pem

<?php
header('Content-Type:text/plain;charset=utf-8');
$data='phpbest'; echo'原始内容:'.$data."\\n";
openssl_public_encrypt($data,$encrypted,file_get_contents(dirname(__FILE__).'/rsa_public_key.pem'));
echo'公钥加密:'.base64\_encode($encrypted)."\\n";
$encrypted=base64_decode('nMD7Yrx37U5AZRpXukingESUNYiSUHWThekrmRA0oD0=');
openssl_private_decrypt($encrypted,$decrypted,file_get_contents(dirname(__FILE__).'/rsa_private\_key.pem'));
echo'私钥解密:'.$decrypted."\\n";
?>
返回列表

上一篇:地震

下一篇:Word 写博客