我被要求對如何對錶單提交數據進行加密並確保其安全地存儲在數據庫中進行一些研究。表格提交將包含有關員工的個人信息,這些信息必須保持安全。使用AES_ENCRYPT的最佳做法是什麼?它有多安全?
在我的研究中,我遇到了AES_ENCRYPT(),並設法應用此函數,以便它將數據成功存儲在數據庫中。
SQL語句的例子我用:
"INSERT INTO employee (firstname) VALUES (AES_ENCRYPT('$name', '$encryption_key'))"
不過,我在這方面有非常有限的知識,我不知道這是足夠足夠的保護,以防止被黑客攻擊的數據。這提供了什麼級別的安全性?有什麼我錯過了或者我可以用來改進我的實現的另一種技術?
此外,我已將加密密鑰存儲在單獨的PHP文件中,但我不知道推薦的存儲方式是什麼。任何意見,將不勝感激。
對不起,如果這個問題是模糊或相當廣泛。我在這方面是一個完整的初學者。如果需要,我很樂意提供更多信息。
如果你對[SQL注入]敏感,加密是非常不相關的(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。你應該使用[prepared statements](http://php.net/manual/en/pdo.prepared-statements.php)建立你的查詢。 –
我簡化了我的陳述以減少問題中的代碼量,但使用了: $ stmt = $ conn-> prepare(「INSERT INTO employee(firstname)VALUES(AES_ENCRYPT(?,'$ encryption_key'))」) ; $ stmt-> bind_param(「s」,$ name); – Jade
好的,認爲可能是這種情況。 –