我有一个testcode.php文件需要编码:
<?php
$hello = "Hello World!";
?>
我创建了文件encode.php来加密和测试该文件:
<?php
/* read the PHP source code */
$source_code = file_get_contents("testcode.php");
/* create the encrypted version */
$redistributable_key = blenc_encrypt($source_code, "encrypt.php");
/* read which is the key_file */
$key_file = ini_get('blenc.key_file');
/* save the redistributable key */
file_put_contents($key_file, $redistributable_key, FILE_APPEND);
include 'encrypt.php';
echo $hello;
?>
但是当我运行encode.php时,我收到了这些错误:
警告:blenc_compile:验证脚本&#39; encrypt.php&#39;失败。 MD5_FILE:910e6a45f806ba3dc42830839971cb53 MD5_CALC:c38a6b2f389267a272ea656073a463 in in 第14行的C:\ xampp \ htdocs \ PHPEncode \ encode.php
和
致命错误:blenc_compile:验证脚本&#39; encrypt.php&#39;失败了, 无法执行。在第14行的C:\ xampp \ htdocs \ PHPEncode \ encode.php
帮帮我解决,谢谢! :)
答案 0 :(得分:2)
当blenc.key_file中有多个可再发行键时,BLENC会出现问题。请参阅我报告的PHP bug #68490。
此外,当您多次运行脚本时,bissc.key_file中的可再发行键将被破坏。这是因为您要附加到该文件,但所有键都保存在同一行(同样的破坏示例在php手册页上)。你应该把它改成:
file_put_contents($key_file, $redistributable_key."\n", FILE_APPEND);
你得到的第二个致命错误可能是因为blenc.key_file已损坏。
答案 1 :(得分:1)
;)只需删除页面中的“<?php ?>
”* .php即可
编译时不是用“<?php and ?>
”
刚 $ hello =“Hello World!”;
并且还可以:)!
答案 2 :(得分:0)
您需要在名为blenc.key_file
的{{1}}变量或php.ini
中指定blenc.key_file
的完整位置,无法在运行时设置.htaccess
(此时密钥文件已被读取)。
ini_set()
示例:
.htaccess
每次加密文件时都会生成一个新的$ redistributable_key! 您必须在密钥@中包含所有密钥 或者使用固定(私有)加密密钥进行所有加密:
php_value blenc.key_file /path/path/path/key_file.blenc
答案 3 :(得分:0)
<?php
$file_name = basename($file);
$source_code = file_get_contents($file);
//This covers old-asp tags, php short-tags, php echo tags, and normal php tags.
$contents = preg_replace(array('/^<(\?|\%)\=?(php)?/', '/(\%|\?)>$/'), array('',''), $source_code);
$html .= "<br> BLENC blowfish unencrypted key: $unencrypted_key" . PHP_EOL;
$html .= "<br> BLENC file to encode: " . $file_name . PHP_EOL;
//file_put_contents('blencode-log', "---\nFILE: $file_name\nSIZE: ".strlen($contents)."\nMD5: ".md5($contents)."\n", FILE_APPEND);
$redistributable_key = blenc_encrypt($contents, TARGET_DIR . '/blenc/' . $file_name, $unencrypted_key);
$html .= "<br> BLENC size of content: " . strlen($contents) . PHP_EOL;
/**
* Server key
* key_file.blenc
*/
file_put_contents(TARGET_DIR . '/blenc/' . 'key_file.blenc', $redistributable_key . PHP_EOL);
$html .= "<br> BLENC redistributable key file key_file.blenc updated." . PHP_EOL;
exec("cat key_file.blenc >> /usr/local/etc/blenckeys");
?>
https://github.com/codex-corp/ncryptd/blob/master/app/controllers/MagicalController.php#L479