Примитивное шыфрование. Интересует стойкость такого шифра

12
AlExTeam
На сайте с 12.08.2010
Offline
34
1108

Если допустим $SECURE_CODE = 's5d98h9jkj5h4ss5dfgfSAdfdf5d56';

for ($CNT_1=0;$CNT_1<StrLen($_POST[PHP_DATA]);$CNT_1++){

$STR=Chr(Ord($_POST[PHP_DATA][$CNT_1]));

for ($CNT_2=0;$CNT_2<StrLen($SECURE_CODE);$CNT_2++){

$STR=Chr(Ord($STR)-Ord($SECURE_CODE[$CNT_2]));

}

$_POST[PHP_DATA][$CNT_1]=$STR;

}

Как видите два цикла, причем второй колошматит каждый символ в данных отнимая значение ordкаждой буквы "пароля".

наскоко такой хеш стойкий и не опасно ли сделать доступными зашифрованные им данные?

Спецы, отозвитесь.

Internet killed the video star
LS
На сайте с 10.08.2010
Offline
42
#1

Это обычный шифр подстановки. Не важно сколько раз вы во втором цикле подменили букву, все равно для всех букв она будет одинаковая и цикл вырождается в простую операцию $STR=Chr(Ord($STR)-Ord(ХХ)). Шифр ломается частотным анализом.

AlExTeam
На сайте с 12.08.2010
Offline
34
#2

ok, а что тогда придумать?

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

LS
На сайте с 10.08.2010
Offline
42
#3

AlExTeam, если надо просто, то можно и шифр подстановки, только начальный ключ возьмите длинной не меньше максимальной длинны текста и меняйте каждый символ входящей строки индивидуальной подстановкой, т.е.

$_POST[PHP_DATA][$CNT_1]=Chr(Ord($_POST[PHP_DATA][$CNT_1])-Ord($SECURE_CODE[$CNT_1]))

LiquidStorm добавил 14.11.2011 в 06:56

Ну и константу $SECURE_CODE = '...' хорошо бы вынести в отдельный файл, доступ к которому запретить через .htaccess всем (пхп без проблем его заинклудид, а вот "голым" через вебь-сервер файлик не уведут).

A
На сайте с 29.12.2007
Offline
68
#4

Почему-бы не заюзать нормальное шифрование? В чем трабла-то?

AlExTeam
На сайте с 12.08.2010
Offline
34
#5
aktuba:
Почему-бы не заюзать нормальное шифрование? В чем трабла-то?

Ну дык где оно, нормальное шифрование?

Пример дайте.

AlExTeam добавил 15.11.2011 в 21:36

LiquidStorm:
AlExTeam, если надо просто, то можно и шифр подстановки, только начальный ключ возьмите длинной не меньше максимальной длинны текста и меняйте каждый символ входящей строки индивидуальной подстановкой, т.е.
$_POST[PHP_DATA][$CNT_1]=Chr(Ord($_POST[PHP_DATA][$CNT_1])-Ord($SECURE_CODE[$CNT_1]))

LiquidStorm добавил 14.11.2011 в 06:56
Ну и константу $SECURE_CODE = '...' хорошо бы вынести в отдельный файл, доступ к которому запретить через .htaccess всем (пхп без проблем его заинклудид, а вот "голым" через вебь-сервер файлик не уведут).

Т.е. как бы ключом, но не поперек каждого символа, а вдоль? Тоже над этим подумывал.

Но токо вот народить ключ длинее данных как-то не очень это улыбается. =))

Хотя может например народить посредством while (strlen($key)<500000){$key.=md5($key);} ???

Га? =))

LS
На сайте с 10.08.2010
Offline
42
#6

AlExTeam, если длинна данных такая большая, проще использовать известный алгоритм, например AES. Стойкость такого алгоритма определяется стойкостью ключа. Для ваших данных хватит минимального размера ключа в 128 бит.

Работа с алгоритмом Райндэла (второе название алгоритма, по имени создателей) реализована в стандартной библиотере Mcrypt.

AutoBlogger
На сайте с 05.10.2011
Offline
128
#7

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

🪄 www.cyberseo.net - плагин для создания автоблогов под WordPress, с поддержкой OpenAI GPT, Anthropic Claude, Google Gemini, Llama, Mistral, Midjourney, FLUX, Stable Diffusion | 📣 Импорт RSS / XML / JSON/ CSV / HTML
LS
На сайте с 10.08.2010
Offline
42
#8

В теме звучал вопрос про стойкость шифра. Ответ был получен (никакая) и предложен вариант "длинного" ключа для ксора по всей длинне текста. Самый простой и действенный метод. А как сделать этот ключ - вопрос риторический при такой длинне текста, более важный вопрос сохранности ключа в тайне )

AlExTeam
На сайте с 12.08.2010
Offline
34
#9
LiquidStorm:
В теме звучал вопрос про стойкость шифра. Ответ был получен (никакая) и предложен вариант "длинного" ключа для ксора по всей длинне текста. Самый простой и действенный метод. А как сделать этот ключ - вопрос риторический при такой длинне текста, более важный вопрос сохранности ключа в тайне )

Где-то так.

Ладно, попробую чо-то намутить, вдоль, впоперек и еще как-то сбоку можно будет попробывать.

babnicks
На сайте с 23.10.2009
Offline
47
#10
AlExTeam:
Ну дык где оно, нормальное шифрование?
Пример дайте.

Нормальное шифрование

100% защита от спам-ботов (https://www.keycaptcha.com)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий