PHP: шифрование файлов с использованием openssl_encrypt - PullRequest
0 голосов
/ 23 января 2019

Есть ли способ зашифровать весь файл (код) с помощью openssl_encrypt.Я нашел связанный поток , но не знаю, как его преобразовать.

Мне просто нужен простой код, чтобы начать работу ..

Этокод, который я пытаюсь преобразовать.

<?php
$key = 'bRuD5WYw5wd0rdHR9yLlM6wt2vteuiniQBqE70nAuhU=';

function my_encrypt($data, $key) {
    $encryption_key = base64_decode($key);
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', $encryption_key, 0, $iv);
    return base64_encode($encrypted . '::' . $iv);
}

function my_decrypt($data, $key) {
    $encryption_key = base64_decode($key);
    list($encrypted_data, $iv) = explode('::', base64_decode($data), 2);
    return openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv);
}

$password_plain = 'abc123';
echo $password_plain . "<br>";

$password_encrypted = my_encrypt($password_plain, $key);
echo $password_encrypted . "<br>";

$password_decrypted = my_decrypt($password_encrypted, $key);
echo $password_decrypted . "<br>"; 

Надеюсь, вы поможете вам.

Спасибо.

1 Ответ

0 голосов
/ 23 января 2019

Похоже, что ваши функции шифрования и дешифрования работают правильно.

Поток кода должен выглядеть примерно так:

$code = file_get_contents('path/to/code.php'); //Get the code to be encypted.
$encrypted_code = my_encrypt($code, $key); //Encrypt the code.
echo 'Encrypted Code <br><br>';
echo $encrypted_code;

file_put_contents('path/to/save/encrypted_code.php', $encrypted_code); //Save the ecnypted code somewhere.

$encrypted_code = file_get_contents('path/to/save/encrypted_code.php'); //Get the encrypted code.
$decrypted_code = my_decrypt($encrypted_code, $key);//Decrypt the encrypted code.
echo 'Decrypted Code <br><br>';
echo $decrypted_code;

file_put_contents('path/to/save/code.php', $decrypted_code); //Save the decrypted code somewhere.

Это просто очень простой пример.

Есть также дополнительные параметры для file_put_contents(), о которых вы должны прочитать.

Убедитесь, что любой файл, в который вы пишете, имеет надлежащие разрешения на запись, иначе файл не сможет быть сохранен. Функцию chmod() можно использовать для управления правами доступа к вашей папке / файлу.

Хорошая библиотека шифрования, которую я рекомендую: Libsodium . Теперь он доступен в PHP> = 7.2. Это мощная библиотека шифрования. Вы должны проверить это.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...