php如何openssl_encrypt加密解密

php如何openssl_encrypt加密解

https://blog.csdn.net/zhemejinnameyuanxc/article/details/83383434

DES介绍

DES 是对称性加密里面常见一种,全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。密钥长度是64位(bit),超过位数密钥被忽略。所谓对称性加密即加密和解密密钥相同,对称性加密一般会按照固定长度,把待加密字符串分成块,不足一整块或者刚好最后有特殊填充字符。

  • 跨语言做 DES 加密解密经常会出现问题,往往是填充方式不对、编码不一致或者加密解密模式没有对应上造成。

  • 常见的填充模式有: pkcs5、pkcs7、iso10126、ansix923、zero。

  • 加密模式有:DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB。

加密用到的方法:

openssl_encrypt($data, $method, $password, $options, $iv)
  • 参数说明:

    • $data 加密明文

    • $method 加密方法

    • DES-ECB

    • DES-CBC

    • DES-CTR

    • DES-OFB

    • DES-CFB

    • $passwd 加密密钥[密码]

    • $options 数据格式选项(可选)【选项有:】

    • 0

    • OPENSSL_RAW_DATA=1

    • OPENSSL_ZERO_PADDING=2

    • OPENSSL_NO_PADDING=3

    • $iv 密初始化向量(可选)

需要注意:如果method为DES−ECB,则 method为DES-ECB,则method为DES−ECB,则iv无需填写

解密用到的方法:

openssl_decrypt($data, $method, $password, $options, $iv)
  • 参数说明:

    • $data 要解密的数据
    • 其他参数同加密方法