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.

例如,您可以制作97Ahff4DYAH9fh9f97_ahff4_d_y_a_h9fh9f. 使用正则表达式在两种形式之间的转换应该是相对容易的。

于 2011-03-14T12:06:12.530 回答
-1

您可以自己将其小写。使用strtolower.

于 2011-03-14T11:46:53.523 回答