我一直在阅读在 MySQL 数据库上存储敏感数据时使用散列与加密的利弊,而赞成散列或加密的人的双方争论只会让我对使用哪个感到困惑和不确定.
哈希:
"INSERT INTO users (`id`,`username`,`password`) VALUES("Bob",SHA2("password1234"));"
Run Code Online (Sandbox Code Playgroud)
缺点:
已弃用
彩虹桌
加密:
"INSERT INTO users (`id`, `username`, `password`) VALUES ("Bob", aes_encrypt("password1234", "key1234"))";
Run Code Online (Sandbox Code Playgroud)
缺点:
可能不适用于某些归类类型
密钥可能被泄露
彩虹桌
那么在提供安全性和性能(从数据库中快速读取和检索)方面,哪个更理想?(在大约 1,000 - 5,000 行的表格中)。