2014-06-11 13 views
7

Mam plik testcode.php trzeba kodować:Jak korzystać z BLENC w PHP?

<?php 
    $hello = "Hello World!"; 
?> 

I utworzony plik encode.php do szyfrowania i przetestować ten plik:

<?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; 
?> 

ale recevied te błędy kiedy wpadłem kodowanie .php:

Warning: blenc_compile: Validation of script 'encrypt.php' failed. MD5_FILE: 910e6a45f806ba3dc42830839971cb53 MD5_CALC: c38a6b2f389267a272ea656073a463ed in C:\xampp\htdocs\PHPEncode\encode.php on line 14

i

Fatal error: blenc_compile: Validation of script 'encrypt.php' failed, cannot execute. in C:\xampp\htdocs\PHPEncode\encode.php on line 14

Pomóż mi to naprawić, dziękuję! :)

+0

'encrypt.php' - jest to plik obecny w aplikacji? – prava

+0

tak, przedstawiono w mojej aplikacji. –

+0

Jeszcze jedna próba zaciemnienia prostego kodu php. Dlaczego ludzie to robią? Po co? – arkascha

Odpowiedz

0

Trzeba podać pełną lokalizację blenc.key_file w zmiennej o nazwie blenc.key_filephp.ini lub poprzez .htaccess, ustawienie na starcie z ini_set() nie jest możliwe (w tym momencie plik klucza został już odczytać).

.htaccess przykład:

php_value blenc.key_file /path/path/path/key_file.blenc 

każdym razem zaszyfrować plik nowa $ redistributable_key zostanie wygenerowany! Trzeba uwzględnić wszystkie klucze w kluczu @ Albo użyć stałego (prywatny) klucza szyfrowania dla całego szyfrowania:

$private_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxVCHANGEME"; 
$redistributable_key = blenc_encrypt($source_code, "encrypt.php", $private_key); 
2

BLENC ma problemy, gdy istnieje więcej niż jeden klucz do redystrybucji w blenc.key_file. Zobacz zgłoszenie PHP bug #68490.

Również po uruchomieniu skryptu wiele razy klucze redystrybucyjne zostaną uszkodzone w pliku blenc.key_file. To dlatego, że dodajesz do pliku, ale wszystkie klucze są zapisane w tej samej linii (ten sam uszkodzony przykład znajduje się na stronie podręcznika php). Należy go zmienić na:

file_put_contents($key_file, $redistributable_key."\n", FILE_APPEND); 

Drugi błąd krytyczny, który otrzymałeś, prawdopodobnie spowodowany jest uszkodzeniem pliku blenc.key_file.

1

;) po prostu usunąć "<?php ?>" na stronie * .php skompilowany to nie z "<?php and ?>"

tylko $ cześć = "Hello World!";

i jest w porządku :)!

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