Nơi Chia Sẻ Nguồn Kiến Thức Vô Hạn
- MD5 là gì
MD5 ( Message-Digest algorithm 5 ) là một thuật toán mã hóa, theo chuẩn RFC 1321 ( http://tools.ietf.org/html/rfc1321 ). Các chương trình mã hóa ( tính ) MD5 thường được gọi là MD5 CheckSum. Nó được dùng để tạo ra một chuỗi 128 bit duy nhất từ một chuỗi tài liệu nhập bất kể, và vì thế thường được dùng để kiểm tra tính toàn vẹn tài liệu của một tập tin. Nói một cách đơn thuần, nếu tập tin bạn tải về có mã MD5 ( thường được trình diễn bằng 32 ký tự thập lục phân – tương tự 128 bit ) khác với MD5 đã được công bố, thì tập tin bạn tải về khác với tập tin gốc. Nghĩa là quy trình tải về đã bị lỗi khiến tải không đủ, hoặc tập tin đã bị sửa đổi ( chèn trojan, virus, .. v.v.. ) so với bản nguyên thủy có MD5 đã đưa lên .
- Ứng dụng
Các đồng hóa MD5 được dùng rộng rãi trong các phần mềm trên toàn thế giới để đảm bảo việc truyền tập tin được nguyên vẹn. Ví dụ, máy chủ tập tin thường cung cấp một checksum MD5 được tính toán trước cho tập tin, để người dùng có thể so sánh với checksum của tập tin đã tải về. Những hệ điều hành dựa trên nền tảng Unix luôn kèm theo tính năng MD5 sum trong các gói phân phối của họ, trong khi người dùng Windows sử dụng ứng dụng của hãng thứ ba.
Bạn đang đọc: Nơi Chia Sẻ Nguồn Kiến Thức Vô Hạn
Tuy nhiên, lúc bấy giờ thuận tiện tạo ra xung đột MD5, một người hoàn toàn có thể tạo ra một tập tin để tạo ra tập tin thứ hai với cùng một checksum, do đó kỹ thuật này không hề chống lại một vài dạng trá hình nguy hại. Ngoài ra, trong 1 số ít trường hợp checksum không hề tin cậy được ( ví dụ, nếu nó được lấy từ một lệnh như tập tin đã tải về ), trong trường hợp đó MD5 chỉ hoàn toàn có thể có tính năng kiểm tra lỗi : nó sẽ nhận ra một lỗi hoặc tải về chưa xong, rất dễ xảy ra khi tải tập tin lớn .
MD5 được dùng thoáng rộng để tàng trữ mật khẩu. Để giảm bớt sự dễ thương tổn đề cập ở trên, ta hoàn toàn có thể thêm một chuỗi vào mật khẩu trước khi băm chúng. Một vài hiện thực hoàn toàn có thể vận dụng vào hàm băm hơn một lần-xem làm mạnh thêm khóa .
- Lấy mã MD5 trong C#
Giải thuật của MD5 cũng khá phức tạp và việc thiết lập trong C # cũng không đơn thuần. May mắn thay ,. NET hầu hết đã làm sẵn cho tất cả chúng ta mọi việc. Tất cả đều gói gọn trong lớp MD5 nằm trong namespace System. Security. Cryptography. Trong bài viết này, tôi sẽ hướng dẫn những bạn sử dụng lớp này để viết một ứng dụng tạo mã MD5 cho một chuỗi và cho một file .
Đầu tiên, ta sẽ viết lớp MD5Encoder gồm có 2 phương pháp tĩnh đùng để mã hóa chuỗi và file với lớp MD5. Đây là một lớp trừu tượng nên bạn không hề thừa kế nó .Code
class MD5Encoder
{
public static string FromString(string Message)
{
/ / tạo đối tượng người dùng mã hóa MD5
MD5 MyMD5 = MD5. Create ( ) ;
/ / mã hóa mảng byte bằng MD5byte[] HashCode = MyMD5.ComputeHash(Encoding.Unicode.GetBytes(Message));
/ / chuyển mảng byte thành chuỗi
StringBuilder SB = new StringBuilder ( ) ;for (int i = 0; i < HashCode.Length; i++)
SB.Append ( HashCode [ i ]. ToString ( “ x2 ” ) ) ;
return SB.ToString();
}
public static string FromFile(string FilePath)
{
/ / tạo đối tượng người tiêu dùng mã hóa MD5
MD5 MyMD5 = MD5. Create ( ) ;
/ / đọc file
FileStream fs = new FileStream ( FilePath, FileMode. Open ) ;
/ / mã hóa mảng byte bằng MD5byte[] HashCode = MyMD5.ComputeHash(fs);
/ / chuyển mảng byte thành chuỗi
StringBuilder SB = new StringBuilder ( ) ;for (int i = 0; i < HashCode.Length; i++)
SB.Append ( HashCode [ i ]. ToString ( “ x2 ” ) ) ;
return SB.ToString();
}
}
Phương thức ComputeHash của lớp MD5 nhận nguồn vào là một mảng byte hoặc một luồng ( stream ) bất kể và trả về một mảng hiệu quả gồm 16 byte. Nhưng tác dụng mà ta mong ước lại là một chuỗi gồm 32 ký tự. Lệnh HashCode [ i ]. ToString ( “ x2 ” ) có trách nhiệm chuyển byte tương ứng của mảng tác dụng thành một chuỗi Hexa gồm 2 ký tự. Như vậy, với 16 byte, ta sẽ có được chuỗi 32 ký tự .
Sau đó, thiết lập sự kiện cho những control :Code
private void cmdEncodeString_Click(object sender, EventArgs e)
{
txtResult. Text = MD5Encoder. FromString ( txtMessage. Text ) ;
}private void cmdEncodeFile_Click(object sender, EventArgs e)
{
if (File.Exists(txtFilePath.Text))
txtResult. Text = MD5Encoder. FromFile ( txtFilePath. Text ) ;
else
MessageBox. Show ( “ Không tìm thấy file ” ) ;
}private void cmdFindFile_Click(object sender, EventArgs e)
{
OpenFileDialog dlgFile = new OpenFileDialog ( ) ;
dlgFile. Title = “ Chọn file ” ;
dlgFile. Filter = “ Tất cả (. ) |. “ ;
dlgFile. FilterIndex = 0 ;if (dlgFile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
txtFilePath. Text = dlgFile. FileName ;
}
Chúc những bạn học tốt .
AdvertisementChia sẻ:
Thích bài này:
Thích
Xem thêm: Tìm việc Làm Giám đốc Đầu tư và Phát triển Dự án Tuyển Dụng 19/04/2023 | https://thomaygiat.com
Đang tải …
Có liên quan
Source: https://thomaygiat.com
Category : Kỹ Thuật Số
Chuyển vùng quốc tế MobiFone và 4 điều cần biết – MobifoneGo
Muốn chuyển vùng quốc tế đối với thuê bao MobiFone thì có những cách nào? Đừng lo lắng, bài viết này của MobiFoneGo sẽ giúp…
Cách copy dữ liệu từ ổ cứng này sang ổ cứng khác
Bạn đang vướng mắc không biết làm thế nào để hoàn toàn có thể copy dữ liệu từ ổ cứng này sang ổ cứng khác…
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel Xử lý dữ liệu từ máy chấm công là việc làm vô cùng…
Cách nhanh nhất để chuyển đổi từ Android sang iPhone 11 | https://thomaygiat.com
Bạn đã mua cho mình một chiếc iPhone 11 mới lạ vừa ra mắt, hoặc có thể bạn đã vung tiền và có một chiếc…
Giải pháp bảo mật thông tin trong các hệ cơ sở dữ liệu phổ biến hiện nay
Hiện nay, với sự phát triển mạnh mẽ của công nghệ 4.0 trong đó có internet và các thiết bị công nghệ số. Với các…
4 điều bạn cần lưu ý khi sao lưu dữ liệu trên máy tính
08/10/2020những chú ý khi tiến hành sao lưu dữ liệu trên máy tính trong bài viết dưới đây của máy tính An Phát để bạn…