PHP зашифровать / расшифровать проблему default_charset - PullRequest
1 голос
/ 20 мая 2011

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

Функция шифрования делает строку str_split и кодирует каждый символ (ord), используя пароль str_split.Тогда это делает chr, и я получаю двоичные данные.Эти двоичные данные кодируются с использованием base64_encode, и я получаю строку ascii.

Я передаю этот файл на другой компьютер, который знает пароль.Я делаю base64_decode и делаю расшифровку.

Проблема возникает иногда, потому что первый компьютер имеет ASCII default_charset, а второй имеет UTF-8.Вот почему nth-char $ temproraryBinaryString [$ n-1] может иметь разные значения на этих компьютерах.

Могу ли я попросить PHP обработать все строки как ASCII, если я не могу контролировать php.ini на любом из этих компьютеров?

Ответы [ 2 ]

1 голос
/ 20 мая 2011

Посмотрите на обсуждение этого поста, так как в нем рассказывается о двустороннем шифровании с использованием PHP mcrypt , что и следует использовать. Двустороннее шифрование: мне нужно хранить пароли, которые можно получить

0 голосов
/ 20 мая 2011

Я ошибочно помечен как дублированный, но это не так, вы говорите кодировка не шифрование, просто попробуйте:

$ascii = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $string);

Это должно дать вам чистую ASCII-строку для работыс str_split() и т. д.

...