handaewoo wrote:
Xin bác conmale giải thích rõ thêm về "encypted bằng MD5 hash" là thế nào ?
Cháu thấy các chuỗi MD5 hash thường không upcase các kí tự là chữ , không dấu chấm (.), không dấu (/), và đặc biệt hơn cả là
chuỗi này :
$1$admin123$Tb9ecAthtzur.VLnwy7D..
sao lại có 1 cụm từ có nghĩa admin trong này ?
Đây là những kiến thức thuộc về cryptography. Bồ nên tìm hiểu về hàm crypt() dùng để generate password và hàm md5() để tạo chuỗi băm (tiếng Anh là message digest).
Đối với password được crypt() tạo với MD5,
- phần $1 biểu thị đây là một md5 hash
- phần $XXXXXX kế tiếp là salt.
- phần $XXXXXXX cuối chính là giá trị hash.
Bởi vậy, $1$admin123$Tb9ecAthtzur.VLnwy7D.. cho thấy.
---> là dạng hash md5.
---> là salt của của password.
---> là giá trị của hash.
Nếu minh hoạ bằng php code thì thấy,
- message digest:
Code:
<?php
$string = 'something';
$hash = md5($string);
echo $hash;
?>
- crypt:
Code:
<?php
$string = 'something';
$salt = 'whatever*';
$hash = md5($string.$salt);
?>
Hai cái này hoàn toàn khác nhau.