首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL PASSWORD() 與 OLD_PASSWORD() 函數詳解:加密原理、差異與替代方案

     編輯:MySQL 綜合教學

MySQL PASSWORD() 與 OLD_PASSWORD() 函數詳解

在 MySQL 資料庫中,PASSWORD() 函數常被用於對字串進行加密,生成的雜湊值以星號(*)開頭,例如 *DEE59C300700AF9B586F9F2A702231C0AC373A13。這是一種單向加密方式,適合用於儲存使用者密碼,但需注意其加密演算法隨 MySQL 版本演進而變化。

OLD_PASSWORD():舊版相容函數

OLD_PASSWORD() 是 MySQL 早期版本(4.1 之前)使用的加密函數,生成的雜湊值為 16 位十六進位字串,例如 077baf58491e1952。此函數主要為了相容舊版客戶端而保留,安全性較低,不建議在新專案中使用。

依賴資料庫加密的缺點與替代方案

使用 PASSWORD() 需連接資料庫執行,存在網路開銷,且加密邏輯綁定於資料庫層,缺乏彈性。實務上,更推薦在應用層使用 MD5、SHA-256 或 bcrypt 等演算法進行明文加密,並配合鹽值機制,提升安全性與可移植性。

最佳實踐建議

  • 新專案請使用 SHA2('plain_text', 256) 或應用層加密庫。
  • 若必須相容舊系統,僅在遷移階段使用 OLD_PASSWORD()。
  • 資料庫層僅儲存雜湊值,切勿儲存明文密碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved