zoukankan      html  css  js  c++  java
  • 数据加密:使用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对接口数据进行可逆加密

  • 相关阅读:
    错误解决mysql
    (一)熟悉执行流程——基于ThinkPHP3.2的内容管理框架OneThink学习
    版权控制之zend guard 6.0使用教程
    IP进制站群原理
    多线程更新已排序的Datagridview数据,造成数据错位
    压缩html 减小存储空间
    DataGridView导入导出excel
    软件下载目录
    java反射
    JTA
  • 原文地址:https://www.cnblogs.com/jianqingwang/p/13252049.html
Copyright © 2011-2022 走看看