php對密碼加密
你可以加一個表單或者在url網址上面加參數例如我用get參數的方式
訪問地址:http://www.sunnyos.com
正常訪問的時候不讓訪問數據錯誤的一句話
<?php
if(!isset($_GET['name'])||!$_GET['name']=='sunny'){
exit('非法訪問');
}
上面代碼加上之後直接訪問http://www.sunnyos.com/index.php就會失敗
而稍微修改一下http://www.sunnyos.com/index.php?name=sunny 這樣就會成功了,因為我從url網址上面獲取了name這個參數來進行對比
還有就是通過表單的方式,html代碼
<formmethod="post">
<inputtype="text"name="name"/>
<inputtype="submit"value="進入"/>
</form>
php代碼:
<?php
if(!isset($_POST['name'])||!$_POST['name']=='sunny'){
exit('非法訪問');
}
㈡ php登陸頁面密碼加密
你這段代碼是客戶端提交頁面時,使用JavaScript加密。
所以你需要一個hex_md5()的js函數。
與php沒有任何關系。
㈢ php中如何使用MD5加密
把這段密文分割成若干段,對每段都進行一次MD5運算,然後把這堆密文連成一個超長的字元串,最後再進行一次MD5運算,得到仍然是長度為32位的密文。
<?php
//把密文分割成兩段,每段16個字元
function md5_2_1($data)
{
//先把密碼加密成長度為32字元的密文
$data = md5($data);
//把密碼分割成兩段
$left = substr($data, 0, 16);
$right = substr($data, 16, 16);
//分別加密後再合並
$data = md5($left).md5($right);
//最後把長字串再加密一次,成為32字元密文
return md5($data);
}
//把密文分割成32段,每段1個字元
function md5_2_2($data)
{
$data = md5($data);
//循環地截取密文中的每個字元並進行加密、連接
for ($i = 0; $i < 32; $i++) {
$data .= md5($data{$i});
}
//這時$data長度為1024個字元,再進行一次MD5運算
return md5($data);
}
?>
㈣ 用php將密碼存入資料庫,用什麼方法進行加密
題主你可以使用 md5 或者 sha1 進行初步處理,但為了更加安全,請你同時加上兩個 salt,一個靜態 salt,一個動態的 salt。以 md5 為例:
假設通過 POST 傳來的密碼為 $_POST['password'],在存入 DB 前先進行如下的操作:
$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);
為了保證動態 salt 的唯一性,可以這樣操作:
$dynamicSalt = hash('md5', microtime());
對於動態的 salt 可以與生成的密碼一起保存在 DB 中,而靜態 salt 則可以直接放在類文件中(例如定義為一個靜態屬性即可)。
首先謝謝題主點贊了我的答案,但是我之前的回答並不是最佳答案,之所以有此加密的想法源於自己所讀的源碼可能比較老,所以並沒使用上較新版本的加密方法,例如 bcrypt等。
此外,第二點,感謝評論中幾位前輩的提點,已經明白設置靜態 salt 的意義並不大,生成一個較長的動態 salt 已然可以解決問題。
LZ應該採用加鹽HASH。
如何「腌制」密碼呢?
=_,=
正確的格式應該是,用戶password+動態的salt
動態的salt不能像2L所說的,使用microtime,因為時間在某些情況下不夠隨機,而且是可能被猜解的。
這里推薦一個我用的加鹽HASH
$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));
$password=sha1($register_password.$salt);
解釋:
首先使用mcrypt,產生電腦隨機生成的,專門用戶加密的隨機數函數。
第二步,把得到的隨機數通過base64加密,使其變長並且不利於猜解。
第三步,把得出的鹽拼接到密碼的後面,再對其使用sha1進行哈希
再把password存入到用戶的資料庫。
PS:為何不用靜態的salt?沒有必要,使用一個動態隨機足夠長的鹽足矣。
為何不用MD5?因為長度不夠。
為何沒有使用多次HASH?因為這樣反而容易發生碰撞。
HASH好之後怎麼使用「腌制」好的密碼?
用戶注冊->提交密碼->產生salt->腌制好的密碼存入資料庫->salt存入資料庫。
用戶登錄->提交密碼->調用salt接到提交密碼的後面->進行HASH->調用之前注冊腌制好的密碼->對比HASH值是否和這個密碼相同
㈤ php實現密碼加密
function ChangeMsg(msgu,msgp)
{
if(msgu!="" && msgp!="")
{
delmsg = md5(msgu);
rname = substr(delmsg,5,1).",".substr(delmsg,7,1).",".substr(delmsg,15,1).",".substr(delmsg,17,1);
rnamearray = explode(',',rname);
rpass = md5(msgp);
r_msg = str_replace(rnamearray, "", rpass);
}else{
r_msg = msgp;
}
return r_msg;
} 可以在上面這段代碼獲得加密的密碼 其實也就是用戶名和密碼同過md5()方法加密!
㈥ PHP密碼為什麼要用md5加密
萬一資料庫的數據泄露了,也不會導致用戶密碼全泄露。
你說:如果別人從0挨個試的話也能試出來啊。
如果沒加密,那他都不用嘗試就知道密碼了
㈦ 如何給php頁面添加密碼
我有個問題抄想問一下,,
是打開襲PHP的源文件需要密碼,還是用瀏覽器瀏覽?前者不能實現,只能把它加密,如果後者,可以
<?php
session_start(); //設置session
if($_SESSION['register'] != 1){
$password = "1234"; //預設的密碼
$pass = $_POST['pass'];
if($pass != $password){
exit('密碼錯誤');
}else{
$_SESSION['register'] = 1;
}
}
?>
這是一個很簡單的輸入密碼才能進入的功能,安全性也比較低...不過我想能滿足你的要求..
下面添加HTML代碼就可以了,input的name為pass