在許多應用軟件中,密匙通常作為加密數據的關鍵部分來確保數據的保密性。然而,當使用MySQL數據庫時,其不允許公開密匙這一做法。
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, password VARCHAR(32) NOT NULL );
在上面的SQL查詢代碼中,我們創建了一個名叫“users”的數據表,其中包含用戶的ID,用戶名以及密碼。例如,當用戶登錄時,他們將向MySQL數據庫提供他們的用戶名和密碼。 MySQL數據庫將使用與存儲在該數據庫中的記錄中相同的加密算法對此進行加密,并將其與存儲在該表中的加密密碼比較。
Mysql建議開發者不要使用公開的處理實際密碼的算法。因此,使用公開密鑰的做法是不安全的,因為黑客可以通過定位該密匙來摧毀數據的完整性和保密性。更好的選擇是使用密碼散列函數來保護用戶的密碼,這意味著開發者不需要在MySQL中存儲實際密碼。相反,可以將密碼發送到安全密鑰庫中,數據庫會返回布爾值,表示提供的密碼是否匹配于該記錄的散列值.