首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Unable to AES_DECRYPT after AES_ENCRYPT in mysql

Unable to AES_DECRYPT after AES_ENCRYPT in mysql
EN

Stack Overflow用户
提问于 2013-05-15 11:34:00
回答 2查看 97.6K关注 0票数 24

我创建了用户表

代码语言:javascript
复制
CREATE  TABLE `user` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`first_name` VARBINARY(100) NULL ,
`address` VARBINARY(200) NOT NULL ,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

我插入了一行:

代码语言:javascript
复制
INSERT into user (first_name, address) VALUES (AES_ENCRYPT('Obama', 'usa2010'),AES_ENCRYPT('Obama', 'usa2010'));

要选择我使用的行,请执行以下操作:

代码语言:javascript
复制
SELECT AES_DECRYPT(first_name, 'usa2010'), AES_DECRYPT(address, 'usa2010') from user;

我得到了下面的result.What,我需要确保我的data.No数据对我是可见的。

EN

回答 2

Stack Overflow用户

发布于 2015-07-10 19:45:39

在mysql命令行客户端,不需要使用CAST

代码语言:javascript
复制
mysql> SELECT AES_DECRYPT(AES_ENCRYPT('admin','abc'),'abc');

+-----------------------------------------------+
| AES_DECRYPT(AES_ENCRYPT('admin','abc'),'abc') |
+-----------------------------------------------+
| admin                                         |
+-----------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CAST(AES_DECRYPT(AES_ENCRYPT('admin','abc'),'abc') AS CHAR (50));

+------------------------------------------------------------------+
| CAST(AES_DECRYPT(AES_ENCRYPT('admin','abc'),'abc') AS CHAR (50)) |
+------------------------------------------------------------------+
| admin                                                            |
+------------------------------------------------------------------+
1 row in set (0.02 sec)

如你所见,在命令行中使用cast会稍微慢一点。但我注意到,如果你使用一些工具,如phpmyadmin,那么你需要使用CAST,否则结果将是错误的。

票数 16
EN

Stack Overflow用户

发布于 2018-05-23 18:11:38

代码语言:javascript
复制
if (isset($_POST['user_name']) and isset($_POST['user_password'])){

$user_name = $_POST['user_name'];
$user_password = $_POST['user_password'];


$query = "SELECT * FROM `user_tbl` WHERE user_name='$user_name' and AES_DECRYPT(user_password , '@ert') = '$user_password'";

$result = mysqli_query($connection, $query) or die(mysqli_error($connection));
$count = mysqli_num_rows($result);
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16556375

复制
相关文章

相似问题

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