惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
博客园_首页
H
Help Net Security
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
The Cloudflare Blog
腾讯CDC
Jina AI
Jina AI
Last Week in AI
Last Week in AI
月光博客
月光博客
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
爱范儿
爱范儿
N
Netflix TechBlog - Medium
F
Fortinet All Blogs

PHP

PHP 是不已经没有公司实际在招了 - V2EX 刚哥开发新的编程语言 TypePHP,周三放到 Github , 3 天 star 就快 900 个了,https://github.com/swoole/typephp,大家用 AI 体验下编程 - V2EX 极致精简,已经优化为仅 100 多 KB!单文件 PHP 论坛! - V2EX 新版六国语言小额 JieDai 系统源码 - V2EX 免费虚拟主机空间安装的一个 PHP 文件论坛 有没有什么好用的免费开源 CRM 系统 2026 年 PHP 路在何方 2026 年,学 laravel 有没有前途: 有没有这样的 PHP 框架 PHP 是不是快死了 php74-fpm 加 nginx, PHP 文件只要不是 root /var/www/html 就提示 No input file specified.求大佬看看 PHP framewok 框架推荐 基于 yii2 框架开发的后台管理软件,免费 「一键部署你的专属服务器」——WNMP 一键包,让 Web 环境搭建回归简单 完蛋了,为什么我感觉 PHP 的语法这么优雅呢 未来属于 PHP 记一次微信 access_token invalid credential, access_token is invalid or not latest 重造 PHP -HTTP 性能检测,新增 List<int>、HashMap<K, V> 求助: PHP 错误,请高手帮我改写下面的 PHP 代码 为什么现在 WEB3、区块链、钱包之类开始用 PHP 了 PHP 8.5 加入了 pipe 语法 推荐一个优雅的 PHP http 请求工具,仿照了 py 的 requests 大家好,我又來了,新作品 https://www.freetalkhub.com, PHP 开发 laravel 和 thinkphp 选择哪个? 202505 最新调研: PHP Opcode 加密混淆哪家强? 有做过基于 webrtc 技术的多人视频会议系统的吗 2025 年 PHP 路在何方 求助 CodeIgniter 输出的 html 格式很乱,缩进乱七八糟的。。。 有个关于 PHP 的小疑惑 workman 与阿里云实时语音通信的问题。
与银行对接 sm4 国密算法
cbasil · 2024-10-31 · via PHP

最近跟银行对接 sm4 国密算法,搞了好久才对接好,我大概讲一下开发中遇到的坑。
php 相关国密算法的教程很少,找了好久才找到 github 上的包[https://github.com/lizhichao/sm]( https://github.com/lizhichao/sm)
配置好后,一运行就报错秘钥长度为 16 位。跟对方沟通后才知道他们给的是 16 进制的 32 位的 key,在 php 中需要用 hex2bin 转成 16 位。
如果对方给的加密模式是 sm4-cbc,还需要配置 iv 。默认 iv 用 hex2bin('00000000000000000000000000000000')生成。不然解密后的字符串前后会有乱码。填充方法一般常用 pkcs5 和 pkcs7 。这二种填充方式概念上没有什么区别,只是 pkcs5 在 blockSize 上固定为 8 bytes,即数据始终会被切割成 8 个字节的数据块,然后计算需要填充的长度.
加密后的字符编码也有 hex 和 base64 区分。
如果 openssl 版本大于 1.1.1 ,就可以用 openssl_decrypt($data, "sm4", $key, $options=OPENSSL_RAW_DATA,$iv)来解密。