使用FILTER_SANITIZE_STRING在类中使用字符串到md5哈希

时间:2013-05-14 02:44:14

标签: php class md5 sanitize

问题:为什么这些不匹配输出?

所以我一直在追查导致我很头疼的问题我无法弄清楚导致使用FILTER_SANITIZE_STRING

进行美化的缩短版MD5哈希会导致什么问题

我知道我清理md5哈希似乎很奇怪,但这个类不仅以这种方式使用,而且我试图避免使用多种方法来做同样的事情。

class test {
public function select($match,$debug) {
        $match1 = filter_var($match, FILTER_SANITIZE_STRING);
        if ($debug == '1') {
            var_dump($match,$match1);
        }

}
}

$title = "April 2013"; // Example Title
$currentHUID = substr(md5($title), 0, 12); // Convert string to UID not for encryption just comparison first 12 char of MD5 Hash

$test = new test();
$test->select("'$currentHUID'",'1');
  

结果: string(14)“'8860d4398c9b'”string(22)“'8860d4398c9b'”

1 个答案:

答案 0 :(得分:2)

您正在使用您的值发送单引号,并且这些引号会被编码。

如果您使用:

$match1 = filter_var($match, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);

结果与输入相同。

Example

另见manual