相当于MySQL的十六进制(aes_encrypt)

时间:2013-06-14 05:35:16

标签: php mysql

在mySql中我做hex(AES_ENCRYPT('mytext','mykeystring'))。这给了我一个包含字符的字符串,而不是一些不可读的东西。

我怎么能在php中做这样的事情?是否有内置功能可以让我这样做?就像mySql有hexaes_encrypt password/salt

一样

我不是在寻找PHP中的精确加密。任何返回一串字母和数字并且不容易破解的东西都会(有盐)

2 个答案:

答案 0 :(得分:5)

PHP等价物是:

// MySQL's AES_ENCRYPT uses Rijndael 128 with ECB mode
$enc_text = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_ECB);
// HEX() equivalent
echo bin2hex($enc_text);

请注意,ECB阻止模式不是很好,最好使用CFB。我的previous answer更详细地讨论了这一点。

答案 1 :(得分:0)

使用hash函数http://php.net/manual/en/function.hash.php)。 hash_algos()函数返回一系列可用算法。 (http://www.php.net/manual/en/function.hash-algos.php