настраиваемая таблица сопоставления для base64 - PullRequest
0 голосов
/ 07 июля 2011

Мне нужно использовать базу 64 для шифрования некоторых данных.но хотя каждый может декодировать его, имеет ли смысл его кодировать?

, поэтому мне нужно использовать пользовательскую таблицу сопоставления , чтобы кодировать вместо "ABCD ......"789 + / "

Я нашел функцию на php.net - http://www.php.net/manual/en/function.base64-encode.php#78765

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

1 Ответ

2 голосов
/ 07 июля 2011

шифрование base64 на самом деле не для безопасности.Вы хотите использовать mcrypt или подобное для этого.Base64 специально предназначен для передачи данных безопасным способом, понятным для многих заинтересованных сторон.

Но вот как вы можете отменить метод этого плаката:

Если выпосмотрите на его комментарии, он поменял 's' и 9 (на самом деле, в его массиве есть две 'S', но я думаю, что вторая была опечаткой).Так что это должно работать:

// there is a more efficient way of doing this, but this was easy to demonstrate.
// you'll need to use temp stand-ins 
$res = str_replace( array( 9, 's' ), array( '{', '}' ), $input ); 
$res = str_replace( array( '{', '}' ), array( 's', 9 ), $res ); 
$base64_raw = '';

for( $i = 0; $i < strlen( $res ); $i++ )
{
    $tmp = $res[ $i ];
    // if it is upper case, then append the lower-case version.
    if( $tmp == strtoupper( $tmp ) ) $base64_raw .= strtolower( $tmp );
    // else append the upper-case version.
    else $base64_raw .= strtoupper( $tmp );
}

echo base64_decode( $base64_raw );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...