2014-12-03 146 views
0

我將值插入數據庫,但我需要密碼進行加密,然後插入特殊字符。我正在使用mysql數據庫,編碼是在正常的php程序中完成的。php Aes_Encrypt致命錯誤

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和測試密鑰的數據。

當我給的密碼"test123" AES加密後的數據必須插入這是"÷A5jèŸ2A1::h "

感謝您的幫助和時間的朋友........請告知如何解決這個問題

+1

您需要在AES_ENCRYPT()部分放置「」。此外,使用'AES_ENCRYPT' MYSQL函數[不是很安全](http://security.stackexchange.com/questions/45838/is-why-should-you-avoid-aes-in-mysql-true)默認。 – 2014-12-03 04:42:30

+0

當然,我會盡力讓你知道我的朋友@MisterDood – 2014-12-03 05:07:42

回答

2

嘗試像下面(我認爲這是一個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

+0

謝謝我會盡力讓你知道這個....但我試過第二種方式,你說它不工作@ Rakesh Sharma – 2014-12-03 05:05:19

+1

都是一些引用差異。試試哪個會適合你 – 2014-12-03 05:23:22

+0

雅第一個人很好,謝謝兄弟我不會忘記你在我的生活中。我坐了三天,玩它,但你在3分鐘內@Rakesh Sharma – 2014-12-03 05:36:56

0

你可以嘗試更類似於你的做法像

的mysql_query( 「SET @密碼= AES_ENCRYPT('」 $ V4。 「 ''」 $ mysecretkey。 「')」); ('$ v1','$ v2','$ v3',@ password)插入客戶(名稱,用戶名,電子郵件,密碼)。

+0

親切的話我會檢查它,讓你知道這個 – 2014-12-03 06:34:14