Từ:
12:10 27/09/2012
Bài:
155
Cảm ơn:
178
Thích:
28
MD5 là một dạng Hash. Dùng để "băm" chuỗi kí tự sang một dãy kí tự mã hóa. Đặc điểm của MD5 là mã hóa một chiều, tức là không có chiều giải mã ngược lại. Cách duy nhất để đoán được đoạn mã trước khi bị "băm" là so sánh nó với thu viện có sẵn. Quá trình so sánh này gọi là brute force. Với các chuỗi cần mã hóa nhưng quá đơn giản thì thường có thể brute force được ngay. Ví dụ như 123456, abcde...
Tuy có thể brute force được nếu mật khẩu không quá khó hoặc nằm trong danh sách các mật khẩu hay dùng nhưng nếu ta mã hóa MD5 2 -3lần thì có thể nói là rất ít trình brute force hay máy tính nào có thể giải mã ra được. Các Web App hiện đại đều dùng thêm một mã salt trong việc mã hóa mật khẩu của mình. Tuy nhiên một số cái không có thì vẫn đưa ra lời khuyên cho người dùng là hãy đặt mật khẩu thật khó đoán và lạ...
Một ví dụ về brote force
Chuỗi 123456 có mã MD5 là :e10adc3949ba59abbe56e057f20f883e
Sau đó vào trang http://www.md5cracker.org/ và thử Decrypt lại đoạn mã trên sẽ ra kết quả là 123456.
Lần 2 ta mã hóa tiếp đoạn e10adc3949ba59abbe56e057f20f883e
Ma MD5 của nó là 14e1b600b1fd579f47433b88e8d85291
Vào tiếp trang trên để Decrypt lại lần nữa thì vẫn ra được đoạn e10adc3949ba59abbe56e057f20f883e và tiếp tục Decrypt đoạn e10adc3949ba59abbe56e057f20f883e thì sẽ ra 123456
Tiep tục với một mã salt là a5ecd. Mã salt là một mã số duy nhất dành cho mỗi User. Sau đó gắn mã này vào mã MD5 của 123456 là e10adc3949ba59abbe56e057f20f883e sẽ thành e10adc3949ba59abbe56e057f20f883a5ecd. Sau đó mã hóa đoạn e10adc3949ba59abbe56e057f20f883ea5ecdta được mã 772970d7fca7a8528f0d0e3fbe39a99c. Vào lại trang trên Decrypt thì Not Found :D
Thân.