数据加密:使用aes对接口数据进行可逆加密

PHP可以通过多种方式对数据进行加密处理,今天我们来说下aes加密和aes解密。

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图:

 

数据加密:使用aes对接口数据进行可逆加密
 

 

aes加密代码:

/**
 * aes加密
 * @param $str
 * @return string
 */
function aesEncrypt($str,$ak,$sk)
{
    return base64_encode(openssl_encrypt($str,'AES-128-CBC',$ak, 1, $sk));
}
PHP

aes解密代码:

/**
 * aes解密
 * @param $str
 * @return string
 */
function aesDecrypt($str,$ak,$sk)
{
    return openssl_decrypt(base64_decode($str), 'AES-128-CBC',$ak, 1, $sk);
}
PHP

其中,AES-128-CBC是加密方式,aes一共有CBC、ECB、CTR、OCF、CFB五种加密方式,具体可以百度相关信息。如果加密用了什么方式,解密也应该用相同的方式,否则会无法解开密文。

$ak是加密的密码,$sk是偏移量,必须是16字节,多了少了都不行。

大家可以用以下参数进行测试下:

$ak = 'asdawsfesadfgewsdfsdgggggggggggggggggggggggggggggggggggggggg';

$sk = '3333111111111112';

加密前字符串:$str = '123456';

加密后字符串:SjFbUWf9u0rsi+3Cp+nX+Q==

如果你的测试结果跟我一样,恭喜你,加密方法封装成功。

介绍完加密方式,我说下应用场景:api接口(避免数据被篡改)、数据存储(避免泄密),有需要的兄弟可以酌情使用。
原文:数据加密:使用aes对接口数据进行可逆加密

posted @ 2020-07-05 21:49  简庆旺  阅读(708)  评论(0编辑  收藏  举报