IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Шифрование [php] (https://www.imho.ws/showthread.php?t=74316)

_ARMAGEDDON_ 25.11.2004 11:16

Шифрование [php]
 
Как на php сделать такую вещь
есть текст "Ivanov Ivan bla bla bla"
как каждую букву этого текста заменить на определенное сочетание букв
например I -> rfjheirghsd , v -> iwehrfuieh и т.д
как сделать обратную замену?

is_absent 25.11.2004 12:27

варианты:
1. strtr
2. регулярные выражения
все имеют недостатки.... код нужно смотреть, насколько он сильно пересекается.. всегда ли длинна замещающего текста одинакова, возможно ли всегда провести однозначное декодирование и т.п. :)

_ARMAGEDDON_ 25.11.2004 12:46

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

RaZEr 25.11.2004 16:54

Вообщем-то и туда и обратно всё заменяется более чем просто. Но дело в том, что такой метод довольно просто расшифровывается, даже если у злоумышленника нет пары источник-результат. Из наиболее простых в реализации алгоритмов является XOR (примеры ищем в гугле). Но я бы советовал использовать расширение (php) mcrypt и не изобретать велосипед.

Hubbitus 25.11.2004 17:16

Почему-то нельзя воспользоваться стандартными средствами PHP (функция crypt например)? Она поддерживает следующие алгоритмы шифрования:
Standard DES-based encryption with a two character salt
Extended DES-based encryption with a nine character salt
MD5 encryption with a twelve character salt starting with $1$
CRYPT_BLOWFISH - Blowfish encryption with a sixteen character salt starting with $2$
(соответственно не все имеют обратное декодирование, внимательно прочитайте)

или будет использоваться какой-то специфический способ шифрования?

RaZEr 25.11.2004 17:22

Цитата:

Почему-то нельзя воспользоваться стандартными средствами PHP (функция crypt например)?
Это вопрос на засыпку разработчикам mcrypt :beer:

Sheryld 25.11.2004 17:34

а я бы предложил еще более простой вариант:

base64_encode
base64_decode

RaZEr 25.11.2004 17:42

Вообщем-то мы говорим о шифровании. base64 несколько не для этого.

Hubbitus 25.11.2004 19:06

Цитата:

RaZEr:
Это вопрос на засыпку разработчикам mcrypt
Дак разработчики просто предложили расширить возможность, там больше доступных способов шиврования (ipleDES, Blowfish, 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2, RC6 и IDEA), и режимов шифровки (OST в CBC, OFB, CFB и ECB) это не значит, что те которые есть в стандартном PHP не работают, и ИМХО в большинстве случаев вполне достаочно тех. :beer:
Хотя безусловно ты прав, mcrypt мощная штука, только часто ли это надо столько возможностей....

InsaneX 25.11.2004 19:15

mcrypt toje ne vsegda podhodit. pass prihoditsya hranit' v scripte, a eto ne securno. na danniy moment ispolzuyu openssl funkcii s public/private key.

Hubbitus 25.11.2004 23:21

Цитата:

InsaneX:
mcrypt toje ne vsegda podhodit. pass prihoditsya hranit' v scripte,
А зачем же его хранить в скрипте? Почему нельзя запрашивать ввод у пользователя, например? Ну или как-то подругому его получать, в зависимости от ситуации...

InsaneX 27.11.2004 12:22

naprimer est' admin + mnogo userov, ih dannie nado shifrovat'. dostup k dannim doljen imet' admin. v etom sluchae shifrovat' passom usera nelzya, tak kak togda admin nichego ne prochitaet...

Heo 27.11.2004 13:31

Ну хранить пароль в MySQL можно ;) Не обязательно в файле

InsaneX 27.11.2004 15:32

:) togda kakoy smisl shifrovat? hax0r poluchaet dostup k mysql baze.. tam je on imeet pass.. dalshe obyasnyat? :)

Hubbitus 27.11.2004 16:22

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

InsaneX 27.11.2004 16:47

Цитата:

Hubbitus:
Ну вобщем-то конечно в подобной задаче лучше пользоваться алгоритмами с закрытым и открытым ключами...
chitay vishe :) etim i polzuemsya.. svoy class napisal daje :)


Часовой пояс GMT +4, время: 00:52.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.