【问题标题】:php Aes_Encrypt Fatal Errorphp Aes_Encrypt 致命错误
【发布时间】:2014-12-03 04:38:05
【问题描述】:

我正在将值插入数据库,但我需要加密密码,然后将特殊字符插入其中。我使用的是mysql数据库,编码是在普通的php程序中完成的。

PHP PROGRAM


$mysecretkey = 'd5k8b6q3'; 
$password=(AES_ENCRYPT('$v4','$mysecretkey')); // problem is here in encryption 
$q="insert into customers (name,username,email,password) values('$v1','$v2','$v3','$password')";

$s= mysql_query($q); 

                    if(!$s)
                    {
                        $r["re"]="Inserting problem in database";
                        print(json_encode($r));
                    }
                    else
                    {
                        $r["re"]="Record inserted successfully";
                    }

但是当我执行代码而不是加密它时,我得到了错误

Fatal error: Call to undefined function AES_ENCRYPT() in ..../checking.php on line 5

如何解决这个问题以及其他细节是数据库中的密码字段是 varchar,我正在从 POST 变量 v1、v2、v3、v4 中获取数据,并且在上面的代码中添加了测试密钥。

当我在 AES 加密后将密码设置为 "test123" 时,必须插入的数据是 "÷A5jèŸ2A1::h "

感谢您的帮助和时间朋友........请告诉如何解决这个问题

【问题讨论】:

  • 您需要在AES_ENCRYPT() 部分周围加上“”。另外,默认使用AES_ENCRYPT MYSQL 函数isn't very secure
  • 当然我会努力让你认识我的朋友@MisterDood

标签: php mysql encryption aes


【解决方案1】:

尝试如下(我认为这是一个 mysql 函数而不是 php,所以直接在查询中使用)

$q="insert into customers (name,username,email,password) values('$v1','$v2','$v3',AES_ENCRYPT('".$v4."','".$mysecretkey."'))";

$q="insert into customers (name,username,email,password) values('$v1','$v2','$v3',AES_ENCRYPT('$v4','$mysecretkey'))";

更多:- http://www.w3resource.com/mysql/encryption-and-compression-functions/aes_encrypt%28%29.php

【讨论】:

  • 谢谢,我会尽力让你知道这件事....但是我尝试了第二种方法,你说它不起作用@Rakesh Sharma
  • 两者都是一些引用差异。试一试对你有用的
  • 你第一个工作得很好,谢谢兄弟,我不会忘记你。我从三天开始就坐着玩它,但你在 3 分钟内就做到了@Rakesh Sharma
【解决方案2】:

您可以尝试更类似于您的方法,例如

mysql_query("SET @password = AES_ENCRYPT('".$v4."','".$mysecretkey."')");

$q="插入客户(姓名、用户名、电子邮件、密码)值('$v1','$v2','$v3',@password)";

【讨论】:

  • 客气话兄弟我会检查它并让你知道这件事
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 2018-05-26
相关资源
最近更新 更多