php中加密和解密

项目要和第三方进行接口对接,所以数据的安全很重要。第一次自己设计并实现,学习记录下

网上查了很多资料,真的很深奥

对称加密:

  双方共用一个约定好的密钥进行数据的加密和解密,但是当密匙丢失,数据将有泄露风险。

实例:

$input_str = '阿达854aa';
echo '被加密的字符串:'.$input_str.'<br>';
$key = '159';
$iv = '1234567812345678';//须是16位
$encrypted = openssl_encrypt($input_str, 'aes-128-cbc', $key, OPENSSL_RAW_DATA, $iv);
echo '加密后的字符串:'.$encrypted.'<br>';
$data = base64_encode($encrypted);
echo '加密编码后的字符串:'.$data.'<br>';
$de_data = base64_decode($data);
echo '加密解码后的字符串:'.$de_data.'<br>';
$decrypted = openssl_decrypt($de_data, 'aes-128-cbc', $key, OPENSSL_RAW_DATA, $iv);
echo '解密后的字符串:'.$decrypted.'<br>';

  输出:

被加密的字符串:阿达854aa
加密后的字符串:���=8�++�-���
加密编码后的字符串:qqT4PTiJKyv/LRmng4UGBA==
加密解码后的字符串:���=8�++�-���
解密后的字符串:阿达854aa

  其中:

‘aes-128-cbc’是一种加密方法,可以使用openssl_get_cipher_methods()获取到。$key加密密钥,须和解密密钥一致。$iv密码初始化向量(16位)。

非对称加密:

  即双方使用不一样的密钥进行加密、解密,也就是公钥、私钥。届时,私钥加密的数据公钥可以解密。但是,公钥加密的数据只有私钥才可以解密。所以只要私钥保存完好,公钥丢失也不会影响数据的安全性。这种方式在网站上很常见,例如https传输

 先这样吧,将项目搞起来,以后再研究吧。先知道原理就可以了,至于具体怎么实现的,哈哈,不懂不懂,有心学但没那个力啊,深奥深奥

猜你喜欢

转载自www.cnblogs.com/two-bees/p/10579879.html