Как зашифровать шестнадцатеричную строку XOR 32 в PHP

Я пытаюсь зашифровать некоторые из своих паролей, используя алгоритм шифрования XOR. Я протестировал его на CyberChef, но не знаю, как преобразовать его из PHP. Я с нетерпением жду возможности помочь. Большое спасибо. Строка XOR HEX 32

Есть ли причина, по которой вы не хотите использовать password_hash?

Nigel Ren 20.03.2022 09:49

Я хочу узнать больше. благодарить.

Khanh Dao Duy 20.03.2022 09:54

Вы не должны шифровать пароли. Их следует хэшировать.

M. Eriksson 20.03.2022 09:54

Помимо пароля, я хочу узнать его, чтобы иметь возможность работать на многих других работах. Я хочу научиться этому. если возможно, пожалуйста, помогите мне, не спрашивайте меня больше о том, почему я не использую другое кодирование .... я хочу учиться. пожалуйста.

Khanh Dao Duy 20.03.2022 09:58

Чему именно вы хотите научиться? С какой конкретно частью у вас проблемы?

Olivier 20.03.2022 10:08

я хочу обработать "мою тестовую строку" в PHP, чтобы получить вывод, как на изображении: i.stack.imgur.com/X54WH.jpg

Khanh Dao Duy 20.03.2022 10:10

Вы вообще знаете, что такое XOR?

Olivier 20.03.2022 10:15

Нет, на самом деле я не знаю. пожалуйста, проинструктируйте меня. благодарить.

Khanh Dao Duy 20.03.2022 10:16

Введите XOR в Google; нажмите на ссылку Википедии; прочитайте страницу.

Olivier 20.03.2022 10:23

так что это не будет работать с PHP?

Khanh Dao Duy 20.03.2022 10:33

Это звучит как интересное учебное упражнение, но если это действительно то, чего вы хотите, вам нужно пойти и немного поучиться. Прямо сейчас здесь нет особого вопроса, просто расплывчатая просьба к нам провести все ваши исследования за вас. Узнайте, что означает «xor», поищите способы сделать это в PHP, а затем вернитесь сюда, если у вас есть вопрос конкретный, как обсуждалось на Как спросить.

IMSoP 20.03.2022 10:38

Я проконсультировался и попытался использовать несколько доступных источников: github.com/sathoro/php-xor-шифр, но я не понимаю, что такое HEX-ключ 32 и как это сделать.

Khanh Dao Duy 20.03.2022 10:49

Добро пожаловать в Stack Overflow. Когда вы спрашиваете группу профессиональных программистов, как «зашифровать пароль», вы поднимаете много красных флажков. Мы, профессионалы, тратим много времени, пытаясь замедлить киберпреступников. Зашифрованные пароли, особенно с простыми для взлома шифрами, такими как XOR, не замедляют работу киберпреступников. Даже не немного. Вот почему вы получаете от нас столько критики. Шифры XOR описаны здесь. Они зависят от безопасный обмен ключами для защиты данных.

O. Jones 20.03.2022 11:10
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
13
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это помогает начать с основных задействованных структур данных.

Ваша цель должен использовать секретный ключ для преобразования вашего простой текст — сообщения, которое вы хотите сохранить в секрете — в зашифрованный текст. По определению ваш обычный текст легко понять противнику, а ваш зашифрованный текст — нет.

Затем остальная часть вашей цели — использовать ключ для преобразования зашифрованного текста обратно в обычный текст. XOR — это симметричный шифр: он использует один и тот же ключ для шифрования и дешифрования.

Базовые структуры данных

Например, у вас есть текстовые строки, как ATTACK.

Вам нравится массивы

array( 65, 84, 84, 65, 67, 75)

И у вас есть строки база 64закодированный, например

base64_encode( "ATTACK" ); //QVRUQUNL

Ваши структуры данных

Допустим, ваше сообщение АТАКА. (Разумеется, такая криптография началась с военных приложений.) Это массив чисел. Ваш пример php преобразует ваше сообщение в массив значений символов ASCII. Этот немного кода делает это. Он использует функцию порядок() для преобразования буквы в число, называемое кодовой точкой. Запустить его.

$plaintext = 'ATTACK';
$plaintextASCII = [];
foreach( str_split( $plaintext ) as $letter) {
  $plaintextAscii[] = ord( $letter );
}
print_r( $plaintextAscii );

Он делает то же самое, что и эта строка кода из вашего примера, но использует явный цикл, а не ярлык array_map().

return array_map('ord', str_split($text));

Затем вы можете изменить этот массив значений символов. Шифр XOR — способ сделать это.

Наконец, вы конвертируете его обратно в строку, используя функцию чр().

$encryptedString = '';
foreach ( $plaintextAscii as $codepoint ) {
  $encryptedString .= chr( $codepoint );
}

Но, поскольку вы исказили свои кодовые точки, чтобы зашифровать их, этот $encryptedString содержит непечатаемые символы. Таким образом, вы не можете просто вставить строку в электронное письмо или что-то в этом роде. Вместо этого вы должны кодировать строку, используя только печатные символы.

base64_encode( $encryptedString );

Это зашифрованное сообщение. Чтобы расшифровать его, вы обращаете процесс.

Это должно помочь вам понять этот пример кода.

Профессиональный совет при попытке понять алгоритм не пытайтесь использовать открывать пакеты с исходным кодом. Вместо этого посмотрите на их код и скопируйте интересные строки в свой пример кода.

Профессиональный совет получите достойную программу-отладчик, чтобы вы могли пошагово выполнять свой код.

Совет по безопасности в Интернете не используйте, повторяю, не используйте этот тип шифрования для хранения паролей людей в Интернете. Это недостаточно безопасно, чтобы замедлить киберпреступников. php имеет действительно хороший набор функций для хеширования паролей. Читайте о них здесь.

Кто-то может сказать, что этот вопрос не заслуживает ответа. Но людям, плохо знакомым с нашей профессией, иногда требуется один-два толчка в правильном направлении.

O. Jones 20.03.2022 12:06

Спасибо за вашу поддержку. Я понял всю проблему, а также решил свою проблему. большое спасибо.

Khanh Dao Duy 20.03.2022 14:20

Другие вопросы по теме