您好,登錄后才能下訂單哦!
哈希密碼為什么是PHP比md5更安全的加密方式?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
傳統加密方式:
md5(密碼+鹽值);
$passwordString='your password';//你的密碼 $salt="your salt value";//鹽值,增加復雜度(隨機字串) $md5Password=md5($passwordString.$salt);
從理論上來說,md5不可逆,算是一種比較安全的加密方式。但是我要提醒的是,md5早在04年的時候就被中國人破解。一旦被人拖庫的化,密碼泄漏的可能性極大。
現在推薦一種新的處理方式:
密碼散列算法函數
password_get_info — 返回指定哈希(hash)的相關信息
password_hash — 創建密碼的哈希(hash)
password_needs_rehash — Checks if the given hash matches the given options
password_verify — 驗證密碼是否和哈希匹配
PHP5.5引入了Password Hashing函數,內核自帶無需安裝擴展。在PHP5.4下測試了下也可是可以的,使用前最好確認一下你當前的環境是否支持這些函數。
Password Hashing主要提供了4個函數
//查看哈希值的相關信息 array password_get_info (string $hash) //創建hash密碼 string password_hash(string $password , integer $algo [, array $options ]) //判斷hash密碼是否特定選項、算法所創建 boolean password_needs_rehash (string $hash , integer $algo [, array $options ] boolean password_verify (string $password , string $hash) //驗證密碼
代碼演示:
$password = 'password123456';//原始密碼 //使用BCRYPT算法加密密碼 $hash_password = password_hash($password, PASSWORD_BCRYPT); if (password_verify($password , $hash_password)){ echo "密碼匹配"; }else{ echo "密碼錯誤"; }
重要特征:
通過password_hash加密后的密碼,使用字典方式很難破解,因為每次生成的密碼都是不一樣的。破解這種加密只能采用暴力破解。
最后提醒:
加密方法再好,原始密碼設置的過于簡單都容易被破解,設置復雜的密碼才是王道。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。