Обратимое шифрование в PHP
Стандартных средств не нашлось, возможно как то корректно и можно шифровать средствами MySQL, но тут нужно помудрить с кодировками... Возможно у меня не выходило это именно из за того, что все данные в UTF-8...
Пробовал подключать библиотеку для шифрования - mcrypt, вещь конечно шикарная... но на практике - не рентабельная.... Англоязычную строку шифрует англоязычным (ну или цифровым) паролем не долго, но вот чтобы зашифровать текстовую строку в UTF-8 на русском языке - требуется время.... Много времени... Очень много времени... строку из 20-символов и 5-значным паролем - шифровало минут 10.... Не есть гуд...
Нашел в сети само-писную функцию обратимого шифрования пароля:
//PHP функция для обратимого шифрования //------------------------------------- function encode($String, $Password){ $Salt='BGuxLWQtKweKEMV4'; $StrLen = strlen($String); $Seq = $Password; $Gamma = ''; while (strlen($Gamma)<$StrLen){ $Seq = pack("H*",sha1($Gamma.$Seq.$Salt)); $Gamma.=substr($Seq,0,8); } return $String^$Gamma; }
Вполне нормально, что функция будет криво шифровать кирилические символы, по этому в идеале обернуть их в Base64.
Как расшифровать строку? Вызовите функцию еще раз, указав два параметра - зашифрованная строка и пароль
Похожие статьи: