Вывод Mcrypt - только нижний регистр? - PullRequest
3 голосов
/ 14 марта 2011

Можно ли указать вывод только в нижнем регистре при использовании Mcrypt?

Это пример моего кода, используемого для шифрования:

 public  function encode($value){ 
      if(!$value){return false;}
      $text = $value;
      $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
      $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
      $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv);
      return trim($this->safe_b64encode($crypttext)); 
  }

Причина этого в том, что мне нужна только зашифрованная строка в нижнем регистре.

Спасибо,

Крис.

EDIT

Я создаю ответ через приложение электронной почты, которое позволяет пользователям отвечать в теме через уведомление по электронной почте. Я использую уникальную зашифрованную строку в качестве ответного электронного письма для ее идентификации. Mcrypt выводит строчные и прописные строки. Это хорошо работает для Gmail и Outlook, но Hotmail преобразует строку адреса ответа в нижний регистр, который затем выдает ошибки при расшифровке. Поэтому мне нужно, чтобы выходная строка из функции выше была только строчной.

Ответы [ 2 ]

3 голосов
/ 14 марта 2011

Вы не можете заставить mcrypt_encrypt выводить все строчные буквы, но вы можете избежать прописных букв в адресе электронной почты, который вы отправляете. Либо найдите 26 других символов, которые еще не использовались в выводе mcrypt (вероятно, не сможете их найти), чтобы заменить буквы в верхнем регистре, или просто строчные буквы в каждой букве, поместив какой-либо символ маркера до или после них, чтобы вы могли преобразовать вернуть их в верхний регистр, прежде чем перейти к mcrypt_decrypt.

Например, вы можете сделать 97Ahff4DYAH9fh9f в 97_ahff4_d_y_a_h9fh9f. Преобразование между двумя формами должно быть относительно простым с использованием регулярных выражений.

0 голосов
/ 14 марта 2011

Вы можете просто сделать это в нижнем регистре.Используйте strtolower.

...