当前位置: 首页 > news >正文

php的openssl_encrypt是不是自动做了PKCS5Padding?

在PHP中,openssl_encrypt函数默认使用的是PKCS7填充(不是PKCS5填充)。PKCS7填充实际上是PKCS5填充的扩展,用于对不同块大小的数据进行填充。

当你使用openssl_encrypt函数进行加密时,如果你没有显式指定填充模式和填充数据的方式,PHP会默认使用PKCS7填充。这意味着,如果你的数据块大小不是128位(16字节)的倍数,openssl_encrypt函数会自动进行填充。填充的字节将会根据需要添加到数据块的末尾,以使其达到指定的块大小。

以下是一个使用openssl_encrypt函数进行加密的示例代码:

<?php
$data = "Hello World";
$key = "SecretKey";
$method = "AES-128-CBC";$ivSize = openssl_cipher_iv_length($method);
$iv = openssl_random_pseudo_bytes($ivSize);$encryptedData = openssl_encrypt($data, $method, $key, OPENSSL_RAW_DATA, $iv);$encryptedDataHex = bin2hex($encryptedData);
echo "Encrypted Data: " . $encryptedDataHex;
?>

在上述代码中,我们使用了AES-128-CBC算法进行加密。openssl_encrypt函数自动使用PKCS7填充,无需额外设置填充。你可以根据实际需求修改加密算法、密钥和数据,并根据需要自定义填充方式。

http://www.lryc.cn/news/134235.html

相关文章:

  • 在本地创建repository及上传至github
  • 情人节特别定制:多种语言编写动态爱心网页(附完整代码)
  • Docker mysql主从同步安装
  • docker update 命令
  • 阻塞和挂起的区别和联系
  • 水力发电厂测量装置配置选型及厂用电管理系统
  • 【RabbitMQ】RabbitMQ整合SpringBoot案例
  • 如何在window下cmd窗口执行linux指令?
  • c++基础系列:字符串、向量和数组
  • docker 05(dockerfile)
  • PostMan 测试项目是否支持跨域
  • jsp 协同过滤 图书管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • 商城-学习整理-高级-商城业务-商品上架es(十)
  • 【水文学法总结】河道内生态流量计算方法(含MATLAB实现代码)
  • 特斯拉Model 3的七年狂飙
  • 物流签收异常,财务对账复杂,怎么解决?
  • docker之镜像与数据卷
  • 服务器为什么会被攻击?43.248.186.x
  • 文心一言 VS 讯飞星火 VS chatgpt (79)-- 算法导论7.4 4题
  • 整理mongodb文档:索引
  • EPICS libCom库(4) -- epicsTimer
  • 成都大运会,保障大型活动无线电安全需要…
  • 【Spring Boot】构建RESTful服务 — 实战:实现Web API版本控制
  • 6.Web后端开发【SpringBoot入门】
  • [ubuntu]ubuntu18.04使用自带共享桌面实现vncserver连接
  • docker启用cgroup v2
  • Java课题笔记~ Axios
  • ip地址和地理位置有关系吗
  • mac指定node版本 mac node版本降级 mac切换node版本
  • C# Windows登录界面进行截图,控制鼠标键盘等操作实现(一)