Mysqli AES_DECRYPT

时间:2016-04-30 17:15:39

标签: mysqli aes

我想知道你们中是否有人可以帮助我。我加密字段并将其写入数据库没有任何问题。例如:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>                 


   <?php echo do_shortcode("[gravityform id='1' title='true' description='true']"); ?>

<?php endwhile; else : ?>

试图再次出来时问题出现了:

$query= mysqli_query($mysqli,"INSERT INTO users (surname) VALUES    (AES_ENCRYPT('Blenkinsop','mypassword'))");

我尝试了很多变体,包括echo $ row ['surname']

错误给出的是:“Undefined index:surname in line ...”,该行引用行:[$ row ['surname']]。

但是,在错误屏幕的底部显示:

$query =  mysqli_query($mysqli,"SELECT AES_DECRYPT(surname,'mypassword') FROM users WHERE userID = 1"); 

while($row = $query->fetch_assoc()){
    [$row['surname']]; }

echo $row[0];

解密正常;我找不到正确的语法来解决它。

如果我只是在没有解密的情况下运行查询,它运行正常且没有错误,并回显仍然加密的名称:

$row = array (size=1)
'AES_DECRYPT(surname,'mypassword')' => string 'Blenkinsop' (length=10)

非常感谢任何帮助。

非常感谢

史蒂夫莫斯

1 个答案:

答案 0 :(得分:-1)

列类型surname = varbinary(50)

$query =  mysqli_query($mysqli, "SELECT *, CAST(AES_DECRYPT(surname,'mypassword') AS CHAR(50)) surname FROM users WHERE userID = 1");