您好,登錄后才能下訂單哦!
這篇文章主要講解了“在PHP中實現加密的方法有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“在PHP中實現加密的方法有哪些”吧!
首先我來簡單介紹一下為什么要加密?
通常,當數據在傳送時,數據最容易受到攻擊,那么加密就是對信息進行編碼的過程,以便對未經授權的用戶保持隱藏。它能確保私有數據、敏感數據,并可以提高客戶端應用程序和服務器之間通信的安全性。
下面就給大家介紹PHP中最常用的三個加密函數,分別是md5()
、crypt()
和password_hash()
;
一:使用 md5()
加密
md5()函數可以計算字符串的 MD5 散列,它是最常用的加密方法;
md5函數的語法為:
md5(string,raw)
其中string是要加密的字符串;row是可選參數,它指定輸出格式(十六進制或二進制輸出格式),可以是TRUE,也可以是FALSE,默認為FALSE(32字符十六進制數)。
使用示例:
加密密碼值并存儲在數據庫中。
<?php $conn = new mysqli('hostname', 'username', 'password', 'databasename'); $pwd = $_POST['password']; $encrypted_pwd = md5($pwd); $username = $_POST['username']; $insert ="INSERT into an_users (id, username, password) VALUES ('', '$username', '$encrypted_pwd')"; if($conn->query($insert)){ echo 'Data inserted successfully'; } else{ echo 'Error '.$conn->error; } ?>
二、使用 crypt()
加密密碼
crypt函數的作用是使用salt返回一個散列字符串。此方法生成弱密碼,它為salt接受第二個參數,這是一個可選參數;salt是一個格式化字符串,它告訴crypt()方法使用哪種算法進行散列;
其語法是:
crypt($string, $salt);
有很多salt常量,但這里我使用了CRYPT_MD5,這將生成 12 個字符的salt。
代碼如下:
<?php $conn = new mysqli('hostname', 'username', 'password', 'databasename'); $pwd = $_POST['password']; if(CRYPT_MD5 == 1) { $encrypted_pwd = crypt($pwd, '$12$hrd$reer'); } $username = $_POST['username']; $insert = "INSERT INTO an_users (id, username, password) VALUES('', '$username', '$encrypted_pwd')"; if($conn->query($insert)){ echo 'Data inserted successfully'; } else{ echo 'Error '.$conn->error; } ?>
附:
三:使用 password_hash()
加密密碼
password_hash()使用足夠強度的單向散列算法創建一個新的密碼散列,password_hash()函數與crypt()函數兼容,它在PHP 5.1中實現。
password_hash()的語法是 :
password_hash(string, algorithm, options)
其中string是要加密的字符串,algorithm表示對密碼進行哈希處理時使用的算法,options是包含選項的關聯數組。
使用示例如下:
使用password_hash()加密密碼值并存儲在數據庫中:
<?php // 連接數據庫 $conn = new mysqli('hostname', 'username', 'password', 'databasename'); $pwd = $_POST['password']; // 使用PASSWORD_DEFAULT $hash = password_hash($pwd, PASSWORD_DEFAULT); $username = $_POST['username']; $insert ="INSERT into an_users (id, username, password) VALUES ('', '$username', '$hash')"; if($conn->query($insert)){ echo 'Data inserted successfully'; } else{ echo 'Error '.$conn->error; } ?>
感謝各位的閱讀,以上就是“在PHP中實現加密的方法有哪些”的內容了,經過本文的學習后,相信大家對在PHP中實現加密的方法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。