安全密碼檢索:超越加密和雜湊
雖然確保資料安全至關重要,但儲存密碼等敏感資訊帶來了獨特的挑戰。對它們進行加密以供以後檢索似乎違反直覺,因為加密的本質在於使資料無法存取。然而,一個明確定義的加密和解密策略可以克服這個障礙。
在 PHP 中,你不能簡單地使用 bcrypt 這樣的雜湊函數來儲存密碼,因為它是一種單向轉換,導致無法檢索。為了解決這個問題,請考慮使用加密和加擾方法的組合,這樣您就可以在保留其安全性的同時檢索原始密碼。
全面的加密解決方案
安全地加密和解密密碼,考慮以下 PHP code:
$key = 'password to (en/de)crypt'; $string = ' string to be encrypted ';
// Encryption $iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM ); $encrypted = base64_encode( $iv . mcrypt_encrypt( MCRYPT_RIJNDAEL_128, hash('sha256', $key, true), $string, MCRYPT_MODE_CBC, $iv ) );
// Decryption $data = base64_decode($encrypted); $iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)); $decrypted = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_128, hash('sha256', $key, true), substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)), MCRYPT_MODE_CBC, $iv ), "" );
基本注意事項
要注意的是,提供的程式碼對資訊加密,但不會對密文進行身份驗證,以防止篡改。為了增強安全性,建議不要只依賴未經身份驗證的加密。
其他資源
探索以下資源進一步了解見解:
注意:加密金鑰安全
切勿使用「密碼」作為加密金鑰;加密金鑰應該是隨機字串。
以上是如何安全地檢索 PHP 中的加密密碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!