首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有mysql的PHP无法解密字符串(字符串来自数据库)

带有mysql的PHP无法解密字符串(字符串来自数据库)
EN

Stack Overflow用户
提问于 2014-04-16 07:43:07
回答 1查看 226关注 0票数 0

我在这里没有看到解决这个问题(mysql是关键-不仅仅是一个加密/解密问题)。

当md5加密串不是来自mysql数据库时,同样的php代码成功地解密它。在不使用mysql的情况下,字符串可以成功地进行加密和解密。我在两个场景中使用相同的解密代码。

1)字符串加密后保存到mysql中

2)加密后的字符串被拉出并尝试解密并显示。

3) mysql版本解密失败(输出-> ef32b9252e40bc9e228744923e33393b)。不使用mysql -(输出“team”)

代码语言:javascript
复制
<?php
// version #1 – mysql version
$encrypted = "team";

// encrypt the string $encrypted
$key = md5(date('l jS of F Y h i s A'));
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $encrypted, MCRYPT_MODE_CBC, md5(md5($key))));**

// Of course here would be the INSERT…..
// So now “team” is in the mysql database encrypted.

$userid = "bob";
$query = "select team from league where username = '".$userid."'";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result)) {
    $encrypted = trim($row['team']);
}

// decrypt the string $encrypted
$key = md5(date('l jS of F Y h i s A'));
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");

print  $decrypted;   //outputs -> ef32b9252e40bc9e228744923e33393b

// Version #2 - non mysql

$encrypted  = "team"    // Not from mysql DB.

// encrypt the string $encrypted
$key = md5(date('l jS of F Y h i s A'));
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $encrypted, MCRYPT_MODE_CBC, md5(md5($key))));

// decrypt the string $encrypted
$key = md5(date('l jS of F Y h i s A'));
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");

print  $decrypted;   //outputs -> team

?>

EN

回答 1

Stack Overflow用户

发布于 2014-05-10 19:26:26

如果我没理解错的话,问题出在您使用MCRYPT_RIJNDAEL_256的时候。

来自AES-256 encryption in PHP

RIJNDAEL-256不同于

-256。AES中的256表示密钥大小,RIJNDAEL中的256表示块大小。当与256位密钥一起使用时,AES-256是RIJNDAEL-128。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23096478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档