Я играю с шифрованием / дешифрованием в php. Интересные вещи!
Однако я сталкиваюсь с некоторыми проблемами, касающимися того, в какой текст зашифровывается.
Вот 2 функции, которые шифруют и дешифруют строку. Он использует ключ шифрования, который я установил как нечто неясное.
Я на самом деле получил это из книги php. Я немного изменил его, но не для того, чтобы изменить его основную цель.
Ниже я создал небольшой пример, который может проверить каждый.
Но я заметил, что некоторые символы отображаются в виде «зашифрованной» строки. Символы, такие как «=» и «+».
Иногда я передаю эту зашифрованную строку через URL. Что, возможно, не совсем подходит для моих скриптов получения. Я предполагаю, что браузер делает что-то со строкой, если видны определенные символы. Я действительно только догадываюсь.
Есть ли другая функция, которую я могу использовать, чтобы браузер не касался строки? или кто-нибудь знает достаточно php bas64_encode (), чтобы запретить использование определенных символов? Я действительно не собираюсь ожидать последнего как возможность. Но я уверен, что есть обходной путь.
наслаждайтесь кодом, кому бы он ни понадобился!
define('ENCRYPTION_KEY', "sjjx6a");
function encrypt($string) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr(ENCRYPTION_KEY, ($i % strlen(ENCRYPTION_KEY))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result)."/".rand();
}
function decrypt($string){
$exploded = explode("/",$string);
$string = $exploded[0];
$result = '';
$string = base64_decode($string);
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr(ENCRYPTION_KEY, ($i % strlen(ENCRYPTION_KEY))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}
return $result;
}
echo $encrypted = encrypt("reaplussign.jpg");
echo "<br>";
echo decrypt($encrypted);