- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[C#] Checksum File trong lập trình Csharp
Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn cách CheckSum File C# (Kiểm tra tập tin có toàn vẹn hay không) trong lập trình C#.
[C#] Tutorial CheckSum File MD5, Sha1, Sha256
Vậy Checksum file là gì? Tại sao cần phải checksum file?
+ Checksum là một phần mềm và được sử dụng để đảm bảo tính toàn vẹn của một tập tin sau khi đã được truyền từ một thiết bị lưu trữ khác.
Có thể là thông qua Internet hoặc đơn giản là giữa hai máy tính trên cùng một mạng. Dù bằng cách nào, nếu bạn muốn đảm bảo rằng các tập tin truyền là chính xác giống như các tập tin nguồn, bạn có thể sử dụng checksum.
Để xác minh tập tin toàn vẹn, người dùng sử dụng một chương trình checksum calculator và so sánh chúng với nhau để đảm bảo rằng chúng khớp với nhau.
+ Checksum được sử dụng không chỉ để đảm bảo vấn đề truyền tải bị hỏng, mà còn để đảm bảo rằng các tập tin đã không bị giả mạo. Khi một thuật toán checksum tốt được sử dụng, thậm chí một sự thay đổi nhỏ về các tập tin sẽ dẫn đến một giá trị checksum hoàn toàn khác nhau.
Hiện nay có rất nhiều mã checksum như SHA-1, SHA-256, MD4, MD5, CRC32 ,...nhưng phổ biến hiện nay được nhiều người biết đến là MD5 và SHA1.
+ Mã SHA1 đang được Microsoft dùng để xác nhận tính toàn vẹn với người dùng.
Trong bài viết này mình sẽ hướng dẫn các bạn viết ứng dụng C# để CheckSum file với các mã phố biến là MD5, SHA1 và SHA256.
Đầu tiên, mình giới thiệu các bạn có thể CheckSum file từ tập lệnh của công cụ Windows PowerShell.
Các bạn có thể xem hình ảnh bên dưới mình checkSum file bằng lệnh: Get-FileHash của Power Shell
Từ Giao diện dòng lệnh, các bạn gõ vào các lệnh sau:
Get-FileHash "C:\Users\nguyenthao\Desktop\demo.txt" -Algorithm MD5
Get-FileHash "C:\Users\nguyenthao\Desktop\demo.txt" -Algorithm SHA1
Get-FileHash "C:\Users\nguyenthao\Desktop\demo.txt" -Algorithm SHA256
Kết quả chúng ta, sẽ có được như hình bên dưới:
Và bây giờ, mình sẽ vào phần chính hướng dẫn các bạn lập trình CheckSum file trên C#:
Giao diện Checksum file C#:
Đầu tiên, các bạn tạo cho mình một class với tên HashFile.cs
Trong tập tin này, sẽ có 3 function check hash file: md5, sha1 và sha256
Source code file HashFile.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace CheckSumFile
{
class HashFile
{
public static string MD5(string path)
{
using (var md5 = System.Security.Cryptography.MD5.Create())
{
using (var stream = File.OpenRead(path))
{
return BitConverter.ToString(md5.ComputeHash(stream)).Replace("-", string.Empty).ToLower();
}
}
}
public static string SHA1(string path)
{
using (var cryptoProvider = new SHA1CryptoServiceProvider())
{
var stream = File.OpenRead(path);
string hash = BitConverter
.ToString(cryptoProvider.ComputeHash(stream)).Replace("-", "");
return hash.ToLower();
}
}
public static string SHA256(string path)
{
using (FileStream stream = File.OpenRead(path))
{
SHA256Managed sha = new SHA256Managed();
byte[] hash = sha.ComputeHash(stream);
return BitConverter.ToString(hash).Replace("-", String.Empty);
}
}
}
}
Source code cho Form1, khi chúng ta bấm vào nút CheckSum file
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CheckSumFile
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btn_chonfile_Click(object sender, EventArgs e)
{
using(OpenFileDialog dialog = new OpenFileDialog())
{
if(dialog.ShowDialog() == DialogResult.OK)
{
txt_input.Text = dialog.FileName;
}
}
}
private void btn_checksum_Click(object sender, EventArgs e)
{
lbl_md5.Text = HashFile.MD5(txt_input.Text);
lbl_sha1.Text = HashFile.SHA1(txt_input.Text);
lbl_sha256.Text = HashFile.SHA256(txt_input.Text);
}
}
}
THANKS FOR WATCHING!