- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [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
Hướng dẫn tạo bản quyền (license product) bảo mật ứng dụng.
Hôm nay, mình xin hướng dẫn các bạn cách tạo License cho ứng dụng. Sau khi, tạo ứng dụng xong, nếu các bạn muốn phân phối ứng dụng của mình theo License product.
Ở bài viết này, mình hướng dẫn các bạn thuật toán cơ bản để bảo mật ứng dụng.
1. Đầu tiên, mình lấy serial number của HDD. Vì serial number HDD là duy nhất, nên ứng dụng mình cài vào máy tính nào thì chỉ sử dụng được một máy, cài đặt vào ổ cứng khác thì ứng dụng sẽ không hoạt động.
2. Tạo khóa token (chuỗi bảo mật).
3. Sử dụng thuật toán SHA1, serial number HDD với token của mình. Bạn có thể sử dụng thuật toán MD5, hay 1 thuật toán mã hóa bất kỳ.
Giao diện ứng dụng:
- Để xem Serial number HDD bạn có thể sử dụng câu lệnh MS-DOS
wmic diskdrive get serialnumber
- Import thư viện
Imports System.ComponentModel
Imports System.Text
Imports System.Security.Cryptography
Imports System.Management
Imports System.Data
Imports System.Data.SqlClient
- Dưới đây là hàm lấy Serial number HDD
Public Function GetDriveSerialNumber() As String
Dim hdd As New ManagementObjectSearcher("select * from Win32_DiskDrive")
Dim hd As ManagementObject
For Each hd In hdd.Get()
HDD_Serial = hd("SerialNumber")
Next
Return HDD_Serial
End Function
- Tiếp tục hàm mã hóa SHA1,
Public Function SHA1(ByVal number As String) As String
Dim ASCIIENC As New ASCIIEncoding
Dim strreturn As String
strreturn = vbNullString
Dim bytesourcetxt() As Byte = ASCIIENC.GetBytes(number)
Dim SHA1Hash As New SHA1CryptoServiceProvider
Dim bytehash() As Byte = SHA1Hash.ComputeHash(bytesourcetxt)
For Each b As Byte In bytehash
strreturn &= b.ToString("X8")
Next
Return strreturn
End Function
- Viết hàm tạo key license cho software
Private Sub btnCreateKey_Click(sender As Object, e As EventArgs) Handles btnCreateKey.Click
Dim key As String
key = SHA1(serialHDD.Trim & token)
txtLicenseKey.Text = key
End Sub
- Viết hàm đăng ký license cho ứng dụng
Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
Dim keyLicense As String = txtRegister.Text
Dim key As String
key = SHA1(serialHDD.Trim & token)
If (keyLicense = key) Then
saveData("update license set licensekey='" & keyLicense & "' where id=1")
Me.Hide()
Dim frm As New XtraForm1
frm.ShowDialog()
Else
MessageBox.Show("Key is not Valid!", "ERROR!")
End If
End Sub
- Viết hàm kiểm tra khi chạy ứng dụng, ứng dụng đã được đăng ký hay chưa
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
lblserialHDD.Text = GetDriveSerialNumber().Trim()
'get serial key from data
Dim keyData As String
keyData = getData()
'get key from hdd serial with token sha1
Dim key As String
key = SHA1(serialHDD.Trim & token)
If keyData = key Then
Me.Hide()
Dim frm As New XtraForm1
frm.ShowDialog()
End If
End Sub
Dưới đây là video demo ứng dụng:
Cám ơn các bạn đã xem bài viết. Hãy like and share giúp mình nha các bạn.
Các bạn có thể Đăng ký kênh Youtube của mình ở góc phải bên trên màn hình.
Mọi thắc mắc về bài viết các bạn có thể hỏi ở http://hoidap.laptrinhvb.net để được support.