美文网首页
PHP 对称加密和非对称性加密

PHP 对称加密和非对称性加密

作者: 鱼落于天 | 来源:发表于2018-06-27 15:33 被阅读0次

对称加密就是用同样的加密手段去解密.PHP中加密使用到了opensll系列函数,需要开启openssl扩展.

加密方法
function encrypt1($id)
{
$key = "1112121212121212121212";
$data['iv'] = 'fdakieli;njajdj1';
$data['value'] = openssl_encrypt($id, 'AES-256-CBC', $key, 0, $data['iv']);
$encrypt = base64_encode(json_encode($data));
return $encrypt;
}
解密方法
function decrypt2($encrypt)
{
$key = '1112121212121212121212';//解密钥匙
$encrypt = json_decode(base64_decode($encrypt), true);
#$iv = base64_decode($encrypt['iv']);
$iv = ($encrypt['iv']);
$id = openssl_decrypt($encrypt['value'], 'AES-256-CBC', $key, 0, $iv);
if ($id) {
return $id;
} else {
return 0;
}
}
非对称性加密:加密和解密用不同的秘钥.成为公钥和私钥,如果用公钥加密,那么就得用私钥解密;反过来,用私钥加密,就要用公钥解密

非对称性加密呢

$config = array(
"config" => "D:/phpStudy/PHPTutorial/Apache/conf/openssl.cnf",#这个路径是openssl.cnf文件的路径
"digest_alg" => "sha512",
"private_key_bits" => 1024,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
);
// Create the private and public key
$res = openssl_pkey_new($config);

// Extract the private key from $res to $privKey
openssl_pkey_export($res, $privKey, NULL, $config);
echo "Private Key: ".$privKey. '<br />';
// Extract the public key from $res to $pubKey
$pubKey = openssl_pkey_get_details($res);
$pubKey = $pubKey["key"];

$data = '我是要加密的数据';
echo "Data: ".$data. '<br />';
// Encrypt the data to $encrypted using the public key
openssl_public_encrypt($data, $encrypted, $pubKey);
$encrypted = base64_encode($encrypted);
echo "Encrypted:加密后的数据 ".$encrypted. '<br />';
// Decrypt the data using the private key and store the results in $decrypted
$encrypted = base64_decode($encrypted);
openssl_private_decrypt($encrypted, $decrypted, $privKey);

echo "Decrypted:解密后的数据 ".$decrypted. '<br />';
需要注意的一点是, 私钥公钥的格式要正确,

image.png

相关文章

  • 【《数学之美》笔记(四)】加密算法

    1. 对称性加密与非对称性加密 假设一个形象理解的场景: 考试时,超模君通过小天给学渣表妹传递答案 对称性加密 非...

  • 移动端的加解密

    首先罗列一些知识点: 1.加密算法通常分为对称性加密算法和非对称性加密算法:对于对称性加密算法,信息接收双方都需事...

  • 加密一

    加密算法通常分为对称性加密算法和非对称性加密算法 对称性加密算法 信息接收双方都需事先知道密匙和加解密算法且其密匙...

  • 程序员面试大纲(持续更新中...)

    网络 Http、TCP、IP、Socket 安全和加密 对称性加密、非对称性加密 业务 OOP MVC 函数式编程...

  • PHP 对称加密和非对称性加密

    对称加密就是用同样的加密手段去解密.PHP中加密使用到了opensll系列函数,需要开启openssl扩展. 加密...

  • iOS 中 3DES加密、MD5加密

    加密算法通常分为对称性加密算法和非对称性加密算法,以及线性散列算法,对应着比较常见的是 DES,RSA,MD5。 ...

  • iOS中3DES加密解密

    加密 加密分为对称加密和非对称加密。 对称性加密算法,信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之...

  • [ 非对称性加密 ] 不好意思 我需要两个秘钥

    何为非对称性加密? 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(pr...

  • 对称性加密与非对称性加密

    一、对称性对称加密 加密和解密同用一个密钥的方式称为共享密钥加密(Common key crypto system...

  • iOS RSA 、DES、MD5三种加密方式结合使用

    概念解释: 对称加密: 需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大...

网友评论

      本文标题:PHP 对称加密和非对称性加密

      本文链接:https://www.haomeiwen.com/subject/jzobyftx.html