i Wikimania 2010.
Hãy
ờ
Hi n đang có l ờ ti n hành đăng ký tham lu n tr
c ngày 20 tháng 5.
i m i tham lu n t ậ ạ ướ
ệ ế
ậ
[Thu nhỏ] [Giúp chúng tôi ] d ch thông tin!
ị
MD5
Bách khoa toàn th m Wikipedia
ư ở
B c t i: ướ ớ menu, tìm ki mế
t t ế ắ ủ ti ng Anh đ ậ t c a ộ hàm băm m t mã ượ ộ ả . M tộ c dùng ph bi n đ ki m tra tính toàn v n c a ẹ ủ t p tin 32 ký t c di n t ọ , MD5 (vi Trong m t mã h c ậ thu t Tiêu hóa tin 5) là m t dài 128-bit. Là m t chu n d ng b o m t, và cũng đ ụ ậ ng đ b ng băm MD5 th ả ế ượ ử ụ ậ ẩ Internet (RFC 1321), MD5 đã đ ể ể ổ ế ộ ố h th p l c phân b ng m t s ệ ậ ụ iả Message-Digest algorithm 5, gi c s d ng ph bi n v i giá tr băm ị ớ ổ ế ề ứ c dùng trong nhi u ng ậ .ự ễ ả ằ ượ ượ ườ
c thi t k b i ượ ế ế ở Ronald Rivest vào năm 1991 đ thay th cho hàm băm tr ế i ta phát hi n ra m t l ệ ườ t nó có ph i là l ế ị ử ụ ả ữ ị ậ h ng h n b khám phá khi n cho vi c s d ng gi ệ ử ụ ế c ướ MD5 đ ể ẫ h ng trong MD5; trong khi v n đó, MD4. Vào năm 1996, ng ộ ỗ ổ ắ ầ i nghiêm tr ng hay không, nh ng chuyên gia mã hóa b t đ u ch a bi ữ ọ ỗ ư ư SHA-1 (khi đó cũng b xem là không an i thu t khác, nh đ ngh s d ng nh ng gi ả ề toàn). Trong năm 2004, nhi u l ả i ị ề ỗ ổ thu t này cho m c đích b o m t đang b đ t nghi v n. ậ ơ ị ặ ụ ậ ả ấ
M c l c ụ ụ
•
[ nẩ ]
i ả ậ ử
• • •
• •
ị ấ
•
1 L ch s và thu t gi ị mã 2 Kh năng b t n công ả 3 ng d ng Ứ ụ i thu t 4 Gi ậ ả 4.1 Mã giả o 5 Các b ng băm MD5 ả 6 Tham kh oả
7 Liên k t ngoài ế
i mã
[s aử ] L ch s và thu t gi ử
ậ
ị
ả
c thi ộ ạ ế ế ở ậ ồ ượ ả ng ỉ i thu t đ ng hóa thông tin đ ệ t k ra MD5 vào năm ế ế ả c t k b i Giáo ằ ườ MIT (Rivest, 1994). Khi công vi c phân tích ch ra r ng MD4- có v không an toàn, ông đã thi ế ủ ượ Hans Dobbertin tìm ẻ ể ơ Message Digest là m t lo t các gi s ư Ronald Rivest c a tr ủ c MD5- i thu t tr gi ậ ướ 1991 đ thay th an toàn h n. (Đi m y u c a MD4 sau đó đã đ ế ể th y).ấ
ớ ạ ộ i h n, m t d ng "xung đ t ộ ạ kh i t o o" c a véc-t Vào năm 1993, Den Boer và Bosselaers đã tìm ra, tuy còn gi ả ủ hàm nén MD5; đó là, v i hai ớ ơ ở ạ I và J khác nhau 4 bit, d n đ n: ế ẫ
MD5compress(I,X) = MD5compress(J,X)
ủ ư ả ộ ộ ấ ề ị ử ụ ộ ậ ư ể ể ế ỹ Trong năm 1996, Dobbertin đã thông báo có xung đ tộ c a hàm nén MD5 (Dobbertin, 1996). Dù nó không ph i là m t cu c t n công vào toàn b hàm băm MD5, nh ng nó đ g n đ các chuyên gia mã hóa đ ngh s d ng k thu t khác đ thay th , nh ủ ầ WHIRLPOOL, SHA-1 hay RIPEMD-160.
c c a b ng băm-128 bit-đ nh đ b t n công ướ ủ ả ủ ỏ ể ị ấ ứ ớ Kích th d án phân b ự an toàn trên th c t ỏ ằ b ng cách tìm ra nh ng xung đ t s d ng t n công bruteforce. MD5CRK là m tộ r ng MD5 không bruteforce. 2004 v i m c tiêu ch ng t ố b t đ u vào tháng 3 năm ụ ắ ầ ộ ử ụ ữ ự ế ằ ấ
17 tháng 8, 2004, khi xung đ tộ đ i v i toàn ố ớ ế ượ ố ở Xiaoyun Wang, Dengguo Feng, Xuejia Lai, và Hongbo Yu[1] trên nhóm ủ ọ ượ c báo cáo là ch di n ra có m t gi ỉ ễ ộ ờ MD5CRK k t thúc nhanh chóng sau ngày b MD5 đ c công b b i ộ [2]. Cu c t n công phân tích c a h đ ộ ấ máy IBM p690.
ấ ệ ể ớ ộ ễ ượ ự ế ộ cho c hai khóa công c ng. Vài ngày sau, Vlastimil Klima ễ [3] vi c xây d ng hai gi y phép ự ả ồ ả i thu t nâng cao, có th xây d ng nh ng xung đ t MD5 trong vài ự ữ ả ậ ộ ộ ằ ộ ộ ng th c mà anh g i là b t đ Vào ngày 1 tháng 3 năm 2005, Arjen Lenstra, Xiaoyun Wang, và Benne de Weger đã X.509 v i các khóa công c ng khác nhau và bi u di n cùng b ng băm MD5, m t s xung đ t th c th đáng đ ự c trình di n. S xây d ng ự ộ ự bao g m nh ng khóa riêng t ộ ư ữ đã mô tả[4] m t gi ộ gi ờ ớ gi ả s d ng m t ph ử ụ ẻ 18 tháng 3 năm 2006, Klima đã phát hành m tộ v i m t máy tính xách tay. Vào ngày ậ [5] có th tìm th y đ ng đ trong vòng m t phút b ng m t máy tính xách tay, i thu t ắ ườ ộ ng h m. ầ ấ ụ ứ ể ươ ộ ọ
[s aử ] Kh năng b t n công
ị ấ
ả
ỉ ộ ậ ố ượ ộ ễ ả ượ c xây nên, v i cùng b ng băm đ ả ế ứ c thêm vào đ khi n cho đ ng đ d x y ra. T c ụ ượ c ư ể Vì MD5 ch dò qua d li u m t l n, n u hai ti n t ề ố ớ ữ ệ ộ ầ thì cùng m t h u t có th cùng đ ế ể ể là hai d li u vào (input) X và Y hoàn toàn khác nhau nh ng có th ra (output) đ ữ ệ m t md5 hash gi ng nhau . Tuy nhiên xác su t đ x y ra đi u này là khá nh . ỏ ấ ể ả ề ộ ố
c đó đ ậ ụ ộ ệ ướ ạ ữ ị ỹ ộ ẫ ấ ộ ố ớ ấ X cho tr ự c ượ mong ề ố c, hai t p tin đ ng đ ụ ậ ướ ộ Vì nh ng k thu t tìm đ ng đ hi n nay cho phép các tr ng thái băm tr xác đ nh m t cách ng u nhiên, có th tìm th y xung đ t đ i v i b t kỳ ti n t ể mu n nào; có nghĩa là, đ i b t kỳ m t chu i các ký t ỗ ộ ố ấ ố c xác đ nh mà đ u b t đ u v i X. có th đ ắ ầ ề ể ượ ớ ị
ụ c x p trên gi ậ ộ i h n 64 byte, có th thay đ i t ớ ạ ớ ẫ ộ do b ng gi ằ ổ ự ộ ậ ể ả T t c nh ng gì c n đ t o ra hai t p tin đ ng đ là m t t p tin m u, v i m t kh i ố ầ ể ạ ấ ả ữ d li u 128 byte đ ậ i thu t ượ ế ữ ệ tìm va ch m.ạ
ộ ố ự ạ ự ồ " MD5 có th d dàng ti p c n tr c ể ễ c nhi u b ng băm MD5 thành chu i mà có ế ậ ỗ ng dùng v i m c đích b V a r i, m t s d án đã t o ra " c dùng đ d ch ng tuy n, và có th đ ể ị ể ượ th đ ng đ v i đ u nh p g c, th ố ừ ồ ế ể ụ b ng c u v ng ầ ả ề ượ ớ ộ ớ ầ ườ ậ ả ụ ẩ . ẻ m t kh u ậ
[s aử ] ng d ng
Ứ
ụ
ộ ầ ồ ệ ề ậ ườ ế ớ ể ả i đ đ m ấ ng cung c p i dùng có th so sánh c dùng r ng rãi trong các ph n m m trên toàn th gi ượ c tính toán tr ả ề c nguyên v n. Ví d , máy ch t p tin th ụ ậ ệ ề ẹ ướ ữ ề ả Unix luôn i dùng ể i v . Nh ng h đi u hành d a trên n n t ng ườ ề ủ ậ c cho t p tin, đ ng ể ườ ự ố ủ ọ Các đ ng hóa MD5 đ ượ b o vi c truy n t p tin đ ả m t ộ checksum MD5 đ ượ v i checksum c a t p tin đã t ủ ậ ớ kèm theo tính năng MD5 sum trong các gói phân ph i c a h , trong khi ng Windows s d ng ng d ng c a hãng th ba. ử ụ ứ ụ ủ ứ
ạ ễ ệ ể ạ ườ ộ ớ ộ
c l y t ng đ ng h p checksum ợ ư ậ ẽ i v ), ả ề ộ ỗ i i: nó s nh n ra m t l ậ i có th t o ra m t t p tin Tuy nhiên, hi n nay d dàng t o ra xung đ t MD5, m t ng ộ ộ ậ ể ố đ t o ra t p tin th hai v i cùng m t checksum, do đó k thu t này không th ch ng ậ ỹ ứ ậ ể ạ m o nguy hi m. Ngoài ra, trong m t s tr l i m t vài d ng gi ộ ố ườ ả ạ ạ ộ ạ không th tin t ượ trong tr ho c t i t p tin l n. ể c (ví d , n u nó đ ượ ấ ừ ộ ệ ụ ế ng h p đó MD5 ch có th có ch c năng ki m tra l ứ ỗ ể ả ậ ưở ể ườ ợ i v ch a xong, r t d x y ra khi t ặ ả ề ư m t l nh nh t p tin đã t ể ớ ỉ ấ ễ ả
c dùng r ng rãi đ l u tr ượ ể ư ộ ữ m t kh u ậ ể ả ổ trên, ta có th thêm ể ẩ ng t n đ c p ẩ . Đ gi m b t s d th ề ậ ớ ự ễ ươ ể c khi băm chúng. M t vài hi n th c có th ự ệ ộ ướ MD5 đ ở áp d ng vào hàm băm h n m t l n-xem làm m nh thêm khóa . salt vào m t kh u tr ậ ộ ầ ụ ơ ạ
[s aử ] Gi
ả
i thu t ậ
s ch s xoay bit v bên trái
ồ ượ ố ộ Hình 1. M t thao tác MD5—MD5 bao g m 64 tác v th này, nhóm trong 4 vòng 16 tác ộ v . ụ F là m t hàm phi tuy t; m t hàm đ Mi ch ra m t kh i tin ộ ộ nh p vào 32-bit, và ố ỉ Ki ch m t h ng s 32-bit, khác nhau cho m i tác v . ụ ụ ế c dùng trong m i vòng. ỗ ỗ ế ỉ ộ ằ ậ
32.
ỉ ự ề s đ n v ; ơ ị s thay d i tùy theo t ng tác v . ụ ch c ng thêm ỉ ộ ừ ổ v i modulo 2 ớ
ề ể ộ ế ề ả ổ ạ ầ ượ ừ ạ ẩ c chia thành t ng đo n 512 bit; m u tin sau đó đ ầ ệ ộ ộ ư ố ẵ ẩ ố ơ ữ ơ MD5 chuy n m t đo n thông tin chi u dài thay đ i thành m t k t qu chi u dài không ộ ượ đ i 128 bit. M u tin đ u vào đ c ẩ ổ đ nộ sao cho chi u dài c a nó chia ch n cho 512. Công vi c đ n vào nh sau: đ u tiên ề ủ c g n vào cu i m u tin. Ti p theo là m t dãy các s zero sao cho m t bit đ n, 1, đ ế ượ ắ ộ ạ i chi u dài c a m u tin lên t ớ ộ ố ủ ớ ẩ ề c l p đ y b ng m t s nguyên 64-bit đ i di n cho chi u dài c a m u tin g c. đ ề ạ ộ ố ằ ượ ấ i 64 bit ít h n so v i b i s c a 512. Nh ng bit còn l ố ủ ầ ủ ệ ẩ
i thu t MD5 chính ho t đ ng trên tr ng thái 128-bit, đ ạ ạ ộ ừ ậ ệ A, B, C và D. Chúng đ c chia thành 4 t ượ ố ố ị ằ 32-bit, ả ượ ữ ẽ ử ớ ố ộ ạ ỗ ạ ố ọ ồ ộ ố ụ ố ụ ượ ả ộ Gi ả i thu t c kh i t o v i nh ng h ng s c đ nh. Gi v i ký hi u ậ ở ạ ớ chính sau đó s x lý các kh i tin 512-bit, m i kh i xác đ nh m t tr ng thái. Quá trình ị ỗ ố vòng; m i vòng g m có 16 x lý kh i tin bao gômg b n giai đo n gi ng nhau, g i là ố ử ả , và d ch trái. Hình 1 mô t ế F, c ng mô đun tác v gi ng nhau d a trên hàm phi tuy n ị ự m t tác v trong m t vòng. Có 4 kh năng cho hàm F; m i cái đ c dùng khác nhau ỗ ộ cho m i vòng: ỗ
/////////////////Đo n này do NDC thêm vào//////////////////////// ạ
trên: Đây là quá trình th c hi n x lý c a 4 hàm F, G, H, I ệ ử ự ủ ở
ươ
ụ
ể
ả
ng đ
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4] [ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8] [ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12] [ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16] ươ ứ ứ Gi i thích: ví d bi u th c th 2 là [DABC 1 12 2], t ng v i:ớ
c th c hi n c a phép toán a = b + ((a + ự ệ Vòng 1 (Round 1): Ký hi u [abcd k s t] là b F(b, c, d) + X[k] + T[t]) <<< s) Quá trình th c hi n 16 b c sau: ướ ự ệ ủ ướ ệ
ậ ớ D = A + ((D + F(A,B,C) + X[1] + T[2]) <<< 12) Nh n xét: Vòng 1 dùng hàm F, V i giá tr t t 1 -> 16 và k t 1 -> 15 ị ừ ừ
, ký hi u [abcd k s t] là c a bi u th c ươ ự ứ : a = b + ((a + G(b, c, ể Vòng 2 (Round 2): T ng t d) + X[k] + T[t]) <<< s) Quá trình th c hi n 16 b ệ ự ệ ủ ướ : c
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
Nh n xét: Vòng 2 dùng hàm G, v i t t 17 -> 32 và k = 1 + 5k mod 16 ậ ớ ừ
Vòng 3 (Round 3):
, ký hi u [abcd k s t] là c a bi u th c ng t ự ứ : a = b + ((a + H(b, c, d) + X[k] + T[t]) ủ ệ ể T ươ <<< s)
c: Quá trình th c hi n 16 b ự ệ ướ
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 1 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 5 16 47] [BCDA 2 23 48]
Nh n xét: Vòng 3 dùng hàm H, v i t t 33 -> 48 và k =5 + 3k mod 16 ậ ớ ừ
Vòng (Round 4):
T ng t , ký hi u [abcd k s t] là c a bi u th c: ươ ự ủ ứ ệ ể
a = b + ((a + I(b,c,d) + X[k] + T[t]) <<< s)
Quá trình th c hi n 16 b ự ệ ướ : c
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCDb 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
Nh n xét: Vòng 4 dùng hàm I, v i t t 49 -> 64 và k =7k mod 16 ậ ớ ừ
ị ủ ỗ ộ ộ ướ c /* Sau đó làm các phép c ng sau. ( Nghĩa là c ng vào m i thanh ghi giá tr c a nó tr khi vào vòng l p ) */ ặ
A = A + AA
B = B + BB
C = C + CC
D = D + DD
End /* of loop on i */
ả ệ ướ ấ ủ ắ ầ ừ ư ố c 4, thông đi p thu ướ : Tính k t qu message digest. Sau khi th c hi n xong b B c 5 ự ế ệ 4 thanh ghi A, B, C, D, b t đ u t g n nh n đ ế byte th p c a thanh ghi A và k t c t ậ ượ ừ ọ thúc v i byte cao c a thanh ghi D b ng phép n i nh sau: Message Digest = A || B || C || ằ ủ ớ D. ( || phép toán n i)ố
///////////////////////////////////////////////////////////////////////
XOR, AND, OR và NOT. l n l ầ ượ t ch phép ỉ
[s aử ] Mã giả
ấ
ế
ề
ủ
ế
ấ
ả
i thu t MD5 nh sau. Mã giả cho gi ả ư ậ
//Chú ý: T t c các bi n đ u là bi n không d u 32 bit và bao ph mô đun 2^32 khi tính toán var int[64] r, k
ị
ỗ
ể
ố ị
//r xác đ nh s d ch chuy n m i vòng r[ 0..15] := {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22} r[16..31] := {5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20} r[32..47] := {4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23} r[48..63] := {6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21}
ử ụ
ủ
ằ
ầ
ố
ố
ị
ủ //S d ng ph n nguyên nh phân c a sin c a s nguyên làm h ng s : for i from 0 to 63 k[i] := floor(abs(sin(i + 1)) × (2 pow 32))
ở
ế
ạ //Kh i t o bi n: var int h0 := 0x67452301 var int h1 := 0xEFCDAB89 var int h2 := 0x98BADCFE var int h3 := 0x10325476
ề
ử
//Ti n x lý: append "1" bit to message append "0" bits until message length in bits ≡ 448 (mod 512) append bit (bit, not byte) length of unpadded message as 64-bit little- endian integer to message
ẩ
ử
ế
ạ
//X lý m u tin trong đo n 512-bit ti p theo: for each 512-bit chunk of message break chunk into sixteen 32-bit little-endian words w[i], 0 ≤ i ≤ 15
ị
ở
ạ
ạ
//Kh i t o giá tr băm cho đo n này: var int a := h0 var int b := h1 var int c := h2 var int d := h3
ặ
//Vòng l p chính: for i from 0 to 63 if 0 ≤ i ≤ 15 then f := (b and c) or ((not b) and d) g := i else if 16 ≤ i ≤ 31 f := (d and b) or ((not d) and c) g := (5×i + 1) mod 16 else if 32 ≤ i ≤ 47 f := b xor c xor d g := (3×i + 5) mod 16 else if 48 ≤ i ≤ 63 f := c xor (b or (not d)) g := (7×i) mod 16 temp := d d := c c := b b := b + leftrotate((a + f + k[i] + w[g]) , r[i]) a := temp
ả
ủ
ế
ả
ạ
//Thêm b ng băm c a đo n vào k t qu : h0 := h0 + a h1 := h1 + b h2 := h2 + c h3 := h3 + d
ị
var int digest := h0 append h1 append h2 append h3 //(expressed as little-endian) ị //đ nh nghĩa hàm d ch trái leftrotate (x, c) return (x << c) or (x >> (32-c));
(0 ≤ i ≤ 15): f := d xor (b and (c xor d)) (16 ≤ i ≤ 31): f := c xor (d and (b xor c))
ư ầ ố ể ể ượ c dùng - còn không, ch ượ c dùng đ tăng ng trình ươ ả ữ đ ng t trên): Ghi chú: Thay vì hàm hóa RFC 1321 g c nh trên, ph n sau có th đ đ hi u qu (h u ích n u ngôn ng assembly đ ữ ế ộ ệ i u hóa đo n mã d ch s t ị ẽ ự ộ ố ư ạ ở
[s aử ] Các b ng băm MD5 ả
MD5("The quick brown fox jumps over the lazy dog") = 9e107d9d372bb6826bd81d3542a419d6
message digests) đ ượ ọ ượ ễ c bi u di n ể c g i là . Sau đây cho th y đ u vào ASCII 43 byte và b ng băm ố th p l c phân ậ ụ ấ ầ ả B ng băm MD5 128 bit (16 byte) (còn đ ả b ng chu i 32 s ỗ ằ ng ng: MD5 t ươ ứ
MD5("The quick brown fox jumps over the lazy eog") = ffd93f16876049265fbaef4da268dd0e
ậ ộ ự ế ẫ ổ ổ Th m chí m t s thay đ i nh trong m u tin cũng d n đ n thay đ i hoàn toàn b ng ả băm, do hi u ng thác ỏ . Ví d , thay ụ ệ ứ ẩ d thành e:
MD5("") = d41d8cd98f00b204e9800998ecf8427e
B ng băm c a m t chu i r ng là: ộ ỗ ỗ ủ ả
[s aử ] Tham kh oả
• Berson, Thomas A. (1992). "Differential Cryptanalysis Mod 232 with Applications
1. ^ http://eprint.iacr.org/2004/199 2. ^ http://eprint.iacr.org/2004/264 3. ^ http://eprint.iacr.org/2005/067 4. ^ http://eprint.iacr.org/2005/075 5. ^ http://eprint.iacr.org/2006/105
• Bert den Boer; Antoon Bosselaers (1993). Collisions for the Compression
to MD5". EUROCRYPT: 71–80. ISBN 3-540-56413-6.
• Hans Dobbertin, Cryptanalysis of MD5 compress. Announcement on Internet,
Function of MD5. 293–304. ISBN 3-540-57600-2.
• Dobbertin, Hans (1996). “The Status of MD5 After a Recent Attack”.
May 1996 [1].
CryptoBytes 2 (2). ftp://ftp.rsasecurity.com/pub/cryptobytes/crypto2n2.pdf. • Xiaoyun Wang; Hongbo Yu (2005). "How to Break MD5 and Other Hash Functions". EUROCRYPT. ISBN 3-540-25910-4.
[s aử ] Liên k t ngoài
ế
• RFC 1321 • W3C recommendation on MD5 • Two colliding PostScript files with the same size • Two colliding executable files • C , Delphi, Java, JavaScript, Perl, PHP, Python and implementations of MD5 • Filesystem-based MD5 tool • Online MD5 hash generator
The MD5 Message-Digest Algorithm
“ L y t Th lo i | Hàm băm | Mã hóa ấ ừ http://vi.wikipedia.org/wiki/MD5” ể ạ : Hàm băm m t mã ậ
Xem
• Bài vi tế • Th o lu n ậ ả • S a đ i ử ổ • L ch s ử ị
Công c cá nhân ụ
• Th b n Beta ử ả • Đăng nh p / M tài kho n
ở
ậ
ả
Xem nhanh
• Trang Chính • C ng đ ng ồ ộ • Th i sờ ự • Thay đ i g n đây ổ ầ • Bài vi t ng u nhiên ẫ ế • Tr giúp ợ • Quyên góp
In/xu t raấ
• T o m t quy n sách ể ộ ạ • T i v d i d ng PDF ả ề ướ ạ • B n đ in ra ể ả
Tìm ki mế
Công cụ
ế ế
• Các liên k t đ n đây • Thay đ i liên quan ổ • Các trang đ c bi t ệ • Liên k t th ng tr c ự ế • Chú thích trang này
ặ ườ
Ngôn ng khác
ữ
y
a
r
• ةيبرعلا • Bahasa Indonesia • Bahasa Melayu • Български • Català • Česky • Dansk • Deutsch • English • Español • Euskara • یسراف • Français • a • • Հայերեն • Hrvatski • Italiano • תירבע • Lietuvių • Magyar • g • • Nederlands • d • • Norsk (bokmål) • Polski • Português • Română • Русский • Slovenčina • Slovenščina • Српски / Srpski • Suomi • Svenska • То икҷ ӣ • Türkçe • Українська
•
• (cid:2)
• Trang này đ • Văn b n đ c phát hành theo ả ượ t sẻ ngươ công/Chia Ghi ử ụ đ bi kho n S d ng ể ế ả Wikipedia® là th ươ ch c phi l i nhu n. ậ ợ • Quy đ nh quy n riêng t • Gi i thi u Wikipedia ệ ớ • L i ph nh n ủ ậ ờ
c s a đ i l n cu i lúc 06:13, ngày 29 tháng 4 năm 2010. ượ ử ổ ầ ố Gi y phép Creative Commons ụ ả ổ Đi uề ấ tự ; có th áp d ng đi u kho n b sung. Xem ề ể t thêm chi ti t. ế ng hi u đã đăng ký c a ủ Wikimedia Foundation, Inc., m t tộ ổ ệ ứ ư ề ị