使用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的输出字符串仅为小写。
答案 0 :(得分:3)
您无法让mcrypt_encrypt
为您提供所有小写输出,但您可以避免在发送的电子邮件地址中使用大写字母。要么找到mcrypt输出中尚未使用的26个其他字符(可能无法找到那么多)用大写字母替换,或者只是小写每个字母,在它们之前或之后放置某种标记字符,这样你就可以转换在传递给mcrypt_decrypt
之前,它们会回到大写。
例如,您可以将97Ahff4DYAH9fh9f
变为97_ahff4_d_y_a_h9fh9f
。使用正则表达式在两个表单之间进行转换应该相对宽松。
答案 1 :(得分:-1)
你可以自己小写一下。使用strtolower
。