企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[BLENC下载](https://pecl.php.net/package/BLENC)(ZendLoader扩展也可以用来加密) phpinfo查看是非线程安全版本: ![](https://img.kancloud.cn/77/55/77557e40761a6bf8385537c8ecdffbe6_509x21.png) 这个已经没有维护了?目前只支持5.6 将解压后拿到的php_blenc.dll放入php/ext文件夹下 php.ini配置; | 名字 | 默认 | 可修改范围 | 更新日志 | | --- | --- | --- | --- | | [blenc.key\_file](https://www.php.net/manual/zh/blenc.configuration.php#ini.blenc.key-file) | /usr/local/etc/blenckeys | PHP\_INI\_ALL |包含可用解密密钥列表的文件。这个文件必须是可读的| ``` [blenc] extension=php_blenc.dll blenc.key_file = "D:\phpstudy_pro\WWW\keys" ``` # 预定义常量 **`BLENC_EXT_VERSION(string)`** # Blenc 函数 **blenc_encrypt**( string $plaintext , string $encodedfile [, string $encryption_key ] ) : string—用BLENC加密PHP脚本 # 例子: demo.php ``` /* 获取要加密的文件 */ $source_code = file_get_contents("./test1.php"); //一定要去掉<?php 和 ?> $source_code = preg_replace('/^<'.'\?php\s+/', '', $source_code); $source_code = preg_replace('/\s+\?>\s*$/', '', $source_code); var_dump($source_code); /* 创建加密文件 第三个参数存在时生成的固定的密钥 */ $redistributable_key = blenc_encrypt($source_code, "test_encoded.php",'qaEm35CDymPcHNbx7cq1Xn24ZfdDlBConj1QtsZR5T4= '); /* 读取ini设置的key_file文件 */ $key_file = ini_get('blenc.key_file'); /* 保存可重新分发的密钥到key_file文件 */ file_put_contents($key_file, $redistributable_key."\n", FILE_APPEND); ``` 密钥被存入keys文件中 ``` //当blenc_encrypt第三个参数存在时则会生成固定的密钥如: S6NdXvj2jlbyQE3MIwwWqzPDh/vMWgY0S49LTB3U+6wx7Yh+Z48znZYTAmmNxEVx 当第三个参数不存在时,则随机生成如下密钥: jSJvgPQ75ekGQKXizpX9nKWSanTkOvbUkaD1vHMj2Xo= ``` 如果在本机测试加密文件,则需要重启apache,否则也会报如下错误! ``` Warning: blenc_compile: Validation of script 'D:/phpstudy_pro/WWW/www.test.com/audit/test_encoded.php' failed. MD5_FILE: 6fb72f51bcb8c82857a291b8d7fb34b6 MD5_CALC: a26481ba5bc3ef7449d3a2d46d2ca19c in Unknown on line 0 Fatal error: blenc_compile: Validation of script 'D:/phpstudy_pro/WWW/www.test.com/audit/test_encoded.php' failed, cannot execute. in Unknown on line 0 ```