3

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)); 
  }

この理由は、小文字のみの暗号化された文字列が必要だからです。

ありがとうございました、

クリス。

編集

ユーザーが通知メールを介してスレッドに返信できるようにする、メールアプリを介した返信を作成しています。一意の暗号化された文字列を返信メールとして使用して識別しています。Mcrypt は、大文字と小文字の文字列を出力します。これは Gmail と Outlook では正常に機能しますが、Hotmail は返信アドレス文字列を小文字に変換し、復号化するとエラーになります。したがって、上記の func からの出力文字列は小文字のみにする必要があります。

4

2 に答える 2

3

すべて小文字で出力することはできませんがmcrypt_encrypt、送信する電子メールアドレスに大文字を使用しないようにすることはできます。mcryptの出力でまだ使用されていない他の26文字を見つけて(おそらくその数を見つけることができないでしょう)、大文字を置き換えるか、各文字を小文字にして、変換できるようにそれらの前後に何らかのマーカー文字を配置しますに渡す前に大文字に戻しますmcrypt_decrypt

たとえば、をにすることができ97Ahff4DYAH9fh9fます97_ahff4_d_y_a_h9fh9f。2つの形式間の変換は、正規表現を使用すると比較的簡単になります。

于 2011-03-14T12:06:12.530 に答える
-1

You could just lower-case it yourself. Use strtolower.

于 2011-03-14T11:46:53.523 に答える