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对接口数据进行可逆加密

  • 相关阅读:
    iOS开发-文件管理(一)
    浅析栈区和堆区内存分配的区别
    浅谈Block传值-匿名函数(代码块)
    cell的各种使用和赋值 总结
    类方法和对象方法的区别
    属性传值 ,代理传值,单例
    类目,延展,协议
    任意点 并查集
    Codeforces 145E. Lucky Queries 线段树
    Codeforces 103B. Cthulhu 并查集运用
  • 原文地址:https://www.cnblogs.com/jianqingwang/p/13252049.html
Copyright © 2011-2022 走看看