- [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
- [SOFTWARE] Giới thiệu bộ phần mềm tính Kết Cấu Thép HatteSale, Mộng Đơn, Dầm, Sàn, Móng Cọc, Vách, Xà Gồ, Tính Tải Trọng
- [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
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
- [SQLSERVER] Hướng dẫn tạo script sql từ ứng dụng Sqlserver management Studio
- [C#] Hướng dẫn sử dụng thư viện AutoITx lấy id và password Ultraviewer trên winform
- [VB.NET] Hướng dẫn lấy thông tin tài khoản đăng nhập windows và khởi động lại ứng dụng ở chế độ Administrator
- [C#] Sử dụng thư viện Polly gửi lại request api khi request bị lỗi hay rớt mạng
- [DEVEXPRESS] Chia sẻ source code tạo báo cáo report in tem nhãn label trên C# winform
- [DEVEXPRESS] Hướng dẫn vẽ biểu đồ Bar Chart trên Winform
- [C#] Tạo form đăng nhập và đăng ký với hiệu ứng Sliding Animation Effect
- [C#] Hướng dẫn tạo thanh toán đơn hàng qua mã vạch VietQR sử dụng API PayOS hoàn toàn miễn phí
- [C#] Hướng dẫn ghi log ra RichTextBox giống Console trên Winform sử dụng thư viện Serilog
- [C#] Hướng dẫn cách tạo mã QR Code trên file Excel
[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!