Chia Sẻ Mã hóa mật khẩu 1 chiều MD5 trong C#

Tham gia
18/4/17
Bài viết
32
Xếp hạng
42
#1
Mã hóa luôn là vấn đề trọng tâm của việc bảo mật. Kỹ thuật mã hóa liên tục được thay đổi để nhằm ngăn cản sự can thiệp không chính thức. Mã hóa một chiều chính là cách thức dùng để mã hóa mật khẩu. Nó được chọn vì nó không thể được giải mã ngược lại. Tuy nhiên chúng ta cũng không chắc chắn tuyệt đối, mọi thứ đều chỉ là tương đối, nhưng đến thời điểm hiện tại đây vẫn là loại mã hóa mạnh mẽ nhất.

Mã hóa MD5 là gì?

MD5 là một hàm băm dài 128-bit, nó thực hiện việc chuyển một đoạn thông tin thành một chiều dài không đổi 128 bit. Nó thường bao gồm 64 tác vụ được nhóm trong 4 vòng với 16 tác vụ



Một thao tác MD5 – Hình wiki​

Ví dụ về một đoạn được băm qua MD5

The quick brown fox jumps over the lazy dog = 9e107d9d372bb6826bd81d3542a419d6

Chỉ một thay đổi nhỏ trên chuỗi cũng sẽ cho một đoạn mã MD5 hoàn toàn khác ví dụ

The quick brown fox jumps over the lazy eog = ffd93f16876049265fbaef4da268dd0e

Có một cách có thể bẻ khóa được đó là Brute force, đây thật ra là một kiểu thử, nó sẽ thử hết tất cả các loại chuỗi để tìm ra chuổi chính xác.



Chiếc máy bẻ khóa này có giá 250.000$ nó có thể bẻ khóa được trong vài ngày với 64 con chip.

Sử dụng mã hóa MD5 trong C#

.Net đã có hỗ trợ một lớp MD5 sẵn và bạn chỉ việc sử dụng nó một cách đơn giản. Để sử dụng nó bạn cần using vào một lớp bảo mật đó là System.Security.Cryptography; và đoạn thực hiện mã hóa như sau:


Mã:
//Tạo MD5
 MD5 mh = MD5.Create();
 //Chuyển kiểu chuổi thành kiểu byte
 byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes("Chuỗi cần mã hóa");
 //mã hóa chuỗi đã chuyển
 byte[] hash = mh.ComputeHash(inputBytes);
 //tạo đối tượng StringBuilder (làm việc với kiểu dữ liệu lớn)
 StringBuilder sb = new StringBuilder();

 for (int i = 0; i < hash.Length; i++)
 {
   sb.Append(hash[i].ToString("X2"));
 }
 MessageBox.Show(sb.ToString());
//nếu bạn muốn các chữ cái in thường thay vì in hoa thì bạn thay chữ "X" in hoa
trong "X2" thành "x"



Kết quả của đoạn mã hóa trên​

Bạn có thể tạo ra một hàm để truyền tham số vào cho đơn giản để dùng lại dễ dàng hơn.
Nguồn: tuandc.com
 

Thành viên trực tuyến

Không có thành viên trực tuyến.

Group TechViews

Thống kê diễn đàn

Chủ đề
1,407
Bài viết
2,939
Thành viên
6,532
Thành viên mới nhất
maygiatlg
Top Bottom