Ở 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.
- Đầ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.
- Tạo khóa token (chuỗi bảo mật).
- 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-DOSwmic diskdrive get serialnumber
Chúng ta bắt đầu Import thư viện.
Imports System.ComponentModel Imports System.Text Imports System.Security.Cryptography Imports System.Management Imports System.Data Imports System.Data.SqlClient
Tiếp theo 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
VIDEO DEMO ỨNG DỤNG
Chúc các bạn thành công với thủ thuật trên.
Theo LapTrinhVB.Net
1 comment:
dễ bị bẻ khoá, chưa bảo mật tốt lắm.
Post a Comment