php - 相当于 MySQL 的 hex(aes_encrypt)

标签 php mysql

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

我怎样才能在 php 中做这样的事情?是否有内置函数可以让我这样做?就像 mySql 有 hexaes_encryptpassword/salt

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

最佳答案

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 block 模式不是很好,最好使用 CFB。我的previous answer对此进行了更详细的讨论。

关于php - 相当于 MySQL 的 hex(aes_encrypt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17101746/

相关文章:

php - Safari 和 iPhone Safari 播放为 "live streaming",文件大小有限(MySQL、PHP)

php - ImageMagick bash 脚本问题

php - 从 ActionScript 3 到 MySQL 的 ByteArray -> 通过 ZendAMF 的 PHP

文件名更改后 JavaScript 不工作

php - foreach 语句后的分号有 "interesting"结果。为什么?

php - 在 PHP 中仅缓存常用数据

mysql - 添加到现有选择脚本的更新脚本 - 如何在一个脚本中选择然后更新>

php - 依靠最大的 table

php - 根据 IF 语句插入具有值的行(在单个查询中)

mysql - 在 mysql 中选择新用户和返回用户的总票数