phpmd532位加密
一般使用非對稱睜唯慎加密,32位 md5足夠了。
當驗證密山慧碼對不對時,使用密碼明文 md5加密後與密文對比,一致則說悉敬明密碼是對的
B. php md5加密 最多多少位
md5是一種散列函數。php 中md5加密結果默認長度是32 位,可將任意長度的「位元組串」變換成一個128bit的大整數,並且它是一個不可逆的字元串變換演算法。該結果字元長度是固定的,而且是唯一的。示例:
<?php
$str="hellozho!";
echomd5($str);
//
$str2="!";
echomd5($str2);
//
?>
C. php 32位md5編碼兩次結果不一樣!
首先你需要了解md5加密的字元串只要有一個位不同,結果就是不同的
PHP中對字元串的表示有兩種形式
第一種是用單引號將字元串引起來,第二種是用雙引號皮棚將字元串慶神引起來
這兩種方式表達的字元串是不同的,單引號引起來的字元串就是字元串本身,而雙引號會對字元燃差則串中的轉義符號進行轉義
你可以試一下在PHP中輸出下面的例子:
echo"x61x62x63";//輸出abc
echo'x61x62x63';//直接輸出x61x62x63,不對內容進行轉義
傳值過來的是計算字元串x...的值,是不經過轉義的
第二個圖中直接用md5("")計算,雙引號的內容是需要經過轉義的
如果圖2中用$md51=md5('f8');就跟圖1是一個結果了
D. php中如何使用MD5碼
首先介紹一下PHP中MD5函數的使用方法:
<?php
$pswd1=md5("cenusdesign");
echo $pswd1; //運行結果為:
$pswd2=md5("Cenusdesign");
echo $pswd2; //運行結果為:
?>
顯然,經過md5加密後,原本「cenusdesign」轉變成了一組32位的字元串,而且,即使是一個字母的大小寫變化,這組字元串就會發生巨大的變化。
Cenus Design建議把用戶注冊時,將密碼首先經過MD5轉換,然後將轉換加密後的資料庫。在用戶登陸時,也將密碼先進行MD5轉化,再和資料庫中那組經過MD5加密的字元串進行比較。這樣,就可以做到在不知道用戶確切密碼的情況下完成密碼的比對操作。
E. 為什麼php注冊,md5加密,密碼為空也能注冊成功
這是因為空字元串經過MD5後並不是空字元串,而是一察御個32位的字元串
這種情況下就不要用empty來判斷了,而應該是 $password==md5("")
或者也可以在md5之前先用empty判斷原始值,判斷完後念沒碰再進仔談行md5加密
F. 用php將密碼存入資料庫,用什麼方法進行加密
題主你可以使用 md5 或者 sha1 進行初步處理,但為了更加安全,請你同時加上兩個 salt,一個靜態 salt,一個動態的 salt。以 md5 為例:x0dx0a假設通過 POST 傳來的密碼為 $_POST['password'],在存入 DB 前先進行如下的操作:x0dx0a$password = hash('md5', $_POST['password'].$staticSalt.$dynamicSalt);x0dx0ax0dx0a為了保證動態 salt 的唯一性,可以這樣操作:x0dx0a$dynamicSalt = hash('md5', microtime());x0dx0ax0dx0a對於動態的 salt 可以與生成的密碼一起保存在 DB 中,而靜態 salt 則可以直接放在類文件中(例如定義為一個靜態屬性即可)。x0dx0a首先謝謝題主採納了我的答案,但是我之前的回答並不是最佳答案,之所以有此加密的想法源於自己所讀的源碼可能比較老,所以並沒使用上較新版本的加密方法,例如 bcrypt等。x0dx0a此外,第二點,感謝評論中幾位前輩的提點,已經明白設置靜態 salt 的意義並不大,生成一個較長的動態 salt 已然可以解決問題。x0dx0ax0dx0aLZ應該採用加鹽HASH。x0dx0a如何「腌制」密碼呢?x0dx0a=_,=x0dx0a正確的格式應該是,用戶password+動態的saltx0dx0a動態的salt不能像2L所說的,使用microtime,因為時間在某些情況下不夠隨機,而且是可能被猜解的。x0dx0a這里推薦一個我用的加鹽HASHx0dx0a$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));x0dx0a$password=sha1($register_password.$salt);x0dx0ax0dx0a解釋:x0dx0a首先使用mcrypt,產生電腦隨機生成的,專門用戶加密的隨機數函數。x0dx0a第二步,把得到的隨機數通過base64加密,使其變長並且不利於猜解。x0dx0a第三步,把得出的鹽拼接到密碼的後面,再對其使用sha1進行哈希x0dx0a再把password存入到用戶的資料庫。x0dx0aPS:為何不用靜態的salt?沒有必要,使用一個動態隨機足夠長的鹽足矣。x0dx0a為何不用MD5?因為長度不夠。x0dx0a為何沒有使用多次HASH?因為這樣反而容易發生碰撞。x0dx0aHASH好之後怎麼使用「腌制」好的密碼?x0dx0a用戶注冊->提交密碼->產生salt->腌制好的密碼存入資料庫->salt存入資料庫。x0dx0a用戶登錄->提交密碼->調用salt接到提交密碼的後面->進行HASH->調用之前注冊腌制好的密碼->對比HASH值是否和這個密碼相同
G. 在php5中md5在加密字元串後如何解密
MD5加密是不能逆運算的,現在的破解大都是窮盡法,就是有一個龐大的MD5碼對照表放在那裡,然後一個一個去對照著查。
H. java的32位MD5加密與php中的32位MD5加密結果不一樣。求幫助。急急急
Java的字元串是unicode編碼,不受源碼文件的編碼影響;而PHP的編碼是和源碼文件的編碼一致,受源碼編碼影響。例中java字元數據在散列時的編碼和php編碼未能保持一致,我認為這是導致輸出不同的「病理」
由於未知mad.toMd5的具體實現,問題直接成因應該在toMd5的String到byte[]轉換時的編碼上,或者未設置或者設置了錯誤的編碼
但只要java的字元串先getBytes獲得位元組串,並和php源碼編碼一致,就能獲得一致結果。
I. java的32位MD5加密與php中的32位MD5加密結果不一樣.求幫助
PHP不是很懂、但是PHP和Java用MD5加密的結果是一樣的、
我記得上次我還用Java調用了人家的PHP充值介面、其中有參數就是MD5加密的;
希望回答能給你帶來幫助~
如果滿意,請採納,如還有疑問,可繼續追問!
您也可以向我們團隊發出請求,會有更專業的人來為您解答!
J. php md5加密 最多多少位
md5是一種散列函數。php
中md5加密結果默認長度是32
位,可將任意長度的「位元組串」變換成一個128bit的大整數,並且它是一個不可逆的字元串變換演算法。該結果字元長度是固定的,而且是唯一的。示例:
<?php
$str="hello zho !";
echo md5($str);
//
$str2=" !";
echo md5($str2);
//
?>