Mcrypt输出 - 仅限小写?

时间:2011-03-14 11:44:15

标签: php encryption mcrypt

使用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的输出字符串仅为小写。

2 个答案:

答案 0 :(得分:3)

您无法让mcrypt_encrypt为您提供所有小写输出,但您可以避免在发送的电子邮件地址中使用大写字母。要么找到mcrypt输出中尚未使用的26个其他字符(可能无法找到那么多)用大写字母替换,或者只是小写每个字母,在它们之前或之后放置某种标记字符,这样你就可以转换在传递给mcrypt_decrypt之前,它们会回到大写。

例如,您可以将97Ahff4DYAH9fh9f变为97_ahff4_d_y_a_h9fh9f。使用正则表达式在两个表单之间进行转换应该相对宽松。

答案 1 :(得分:-1)

你可以自己小写一下。使用strtolower