• [Demo P1] Tạo khóa bản quyền cho phần mềm
  • RE: [Demo P1] Tạo khóa bản quyền cho phần mềm

    Vihung1976 > 12-02-22, 11:16 PM

    Bạn MaiDinhDan cho mình xin số điện thoại được không? Minh xin cảm ơn
    Gmail của mình: vihung1976@gmail.com
  • RE: [Demo P1] Tạo khóa bản quyền cho phần mềm

    Vihung1976 > 13-02-22, 12:26 AM

    (28-07-18, 10:10 PM)maidinhdan Đã viết:
    (28-07-18, 11:57 AM)niembui Đã viết: Chào các anh/chị

    Mình quan tâm " tạo khóa bản quyền cho file access. Anh chị nào có thể nhận dịch vụ tạo dùm mình code này thì làm ơn cho mình hay nha. email buingocniem@gmail.com. Mình có nhu cầu thực, thù lao thỏa thuận. Xin cảm ơn.

    QUY TRÌNH TẠO BẢN QUYỀN (LICENSE PRODUCT) BẢO MẬT ỨNG DỤNG
    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 Hex, serial number HDD với token của mình. Bạn có thể sử dụng thuật toán MD5, SHA1 hay 1 thuật toán mã hóa bất kỳ

    * Các hàm cần chuẩn bị, gồm:
    + Hàm đọc ổ cứng HDD ( hoặc đọc Mainboard,CPU...cái này tùy vào sở thích mỗi người)
    + Hàm mã hóa ký tự;
    + Hàm giải mã ký tự;
    + Hàm mã hóa sang kiểu Hex
    + Hàm giải mã từ kiểu Hex
    + Hàm Mã hóa key đăng ký
    + Hàm giải mã key đăng ký
    + Hàm kiểm tra cái Key đăng ký hợp lệ không ( để dùng mỗi lần User mở máy lên ta sẽ kiểm tra, nếu hợp lệ thì cho chạy chương trình, không thì Out ngay.


    * Modules

    Mã PHP:
    Public Function Mahoa(Data As StringOptional Depth As Integer) As String
    Dim TempChar 
    As StringTempAsc As IntegerNewData As StringvChar As Integer
       
       For vChar 
    1 To Len(Data)
           TempChar mID$(DatavChar1)
           TempAsc Asc(TempChar)
           If Depth 0 Then Depth 40
           If Depth 
    254 Then Depth 254
           
           TempAsc 
    TempAsc Depth
           
           If TempAsc 
    255 Then TempAsc TempAsc 255
           
           TempChar 
    Chr(TempAsc)
           NewData NewData TempChar
       Next vChar
       Mahoa 
    NewData
    End 
    Function 



    Mã PHP:
    Public Function GiaiMa(Data As StringOptional Depth As Integer) As String
    Dim TempChar 
    As StringTempAsc As IntegerNewData As StringvChar As Integer
       For vChar 
    1 To Len(Data)
           TempChar mID$(DatavChar1)
           TempAsc Asc(TempChar)
           If Depth 0 Then Depth 40
           If Depth 
    254 Then Depth 254
           
           TempAsc 
    TempAsc Depth
           
           If TempAsc 
    0 Then TempAsc TempAsc 255
           
           TempChar 
    Chr(TempAsc)
           NewData NewData TempChar
       Next vChar
           GiaiMa 
    NewData
    End 
    Function 



    Mã PHP:
    Function DocHDD()
       Set Discos GetObject("WINMGMTS:").InstancesOf("Win32_PhysicalMedia")
       For Each Disco In Discos
           abc 
    Disco.SerialNumber
           If Len
    (Trim(abc)) > 0 Then Exit For
       Next
       DocHDD 
    Trim(abc)
    End Function 




    Mã PHP:
    Public Function MahoaToHex(tString As String) As String
    Dim i 
    As IntegerAs String
    ""
    For 1 To Len(tString)
     S Right$("00" Hex(Asc(mID$(tStringi1))), 2)
    Next i
    MahoaToHex 
    S
    End 
    Function
    Function 
    GiaiMaFromHex(strHex As String) As String
       Dim lngCount 
    As Long
       For lngCount 
    1 To Len(strHexStep 2
           GiaiMaFromHex 
    GiaiMaFromHex Chr("&h" mID(strHexlngCount2))
       Next
    End 
    Function 



    Mã PHP:
    '---------------------------------------------------------------------------------------
    ProcedureTen thu tuc Ma Hoa Key Dang ky
    ' Author/ Nguoi khoi tao : maidinhdan@gmail.com
    Tao tren may tinh User DANAspireV5
    ' Date/ Ngay tao         : 12/31/2016-13:40
    Purpose/Mo ta          :
    '---------------------------------------------------------------------------------------
    '
    Function MaHoaKeyDangky(KeyDangky As String) As String
    Dim b1 
    As Stringb2 As Stringb3 As Stringb4 As Stringb5 As Stringb6 As Stringb7 As Stringb8 As String
    Dim l 
    As Byte
       b1 
    KeyDangky
       b2 
    MahoaToHex(b1)
       b3 Mahoa(b245)
       l Len(b3) / 2
       k 
    Left(b3Len(b3) - Round(l0))
       q mID(b3Len(b3) - Round(l0) + 1)
       b4 k
       b5 
    Mahoa(b4120)
       b6 Mahoa(b5100)
       b7 Mahoa(b680)
       b8 MahoaToHex(b7)
       MaHoaKeyDangky b8
    End 
    Function 



    Mã PHP:
    '---------------------------------------------------------------------------------------
    ProcedureTen thu tuc Giai Ma Key Dang ky
    ' Author/ Nguoi khoi tao : maidinhdan@gmail.com
    Tao tren may tinh User DANAspireV5
    ' Date/ Ngay tao         : 12/31/2016-13:40
    Purpose/Mo ta          :
    '---------------------------------------------------------------------------------------
    '
    Function GiaiMaKeyDangky(KeyDangkyDaMaHoa As String) As String
    Dim b1 
    As Stringb2 As Stringb3 As Stringb4 As Stringb5 As Stringb6 As Stringb7 As Stringb8 As String
    Dim l 
    As Byte
       b1 
    KeyDangkyDaMaHoa
       b2 
    GiaiMaFromHex(b1)
       b3 GiaiMa(b280)
       b4 GiaiMa(b3100)
       b5 GiaiMa(b4120)
       
       l 
    Len(b5) / 2
       k 
    Left(b5Len(b5) - Round(l0))
       q mID(b5Len(b5) - Round(l0) + 1)
       b6 k
       b7 
    GiaiMa(b645)
       b8 GiaiMaFromHex(b7)
       GiaiMaKeyDangky b8
    End 
    Function 



    Mã PHP:
    Function KiemtraKey(KeyKichHoatTable As String) As Boolean
    On Error 
    GoTo Loi
    'Nhap code vao
       If GiaiMaKeyDangky(Nz(KeyKichHoatTable)) = DocHDD Then KiemtraKey = True
    '
    On Error GoTo 0
    Exit Function
    Loi:
       KiemtraKey False
    End 
    Function 


    * Sau khi có các hàm cần thiết ta thiết kế 2 form:
    1. Form dành cho người dùng đăng ký; khi họ bật lên nó sẽ hiển thị khóa đăng ký, họ phải gửi cho bạn khóa này
    [Hình: DangKybanquyen1.png]
    2. Form cho bản thân ta, tức là, khi người dùng gửi bạn khóa đăng ký bạn sẽ dùng form này để tìm khóa kích hoạt sử dụng chương trình để gửi cho họ

    [Hình: DangKybanquyen2.png]



    * Demo minh họa theo link bên dưới:
    * Bạn nào có nhu cầu nghiên cứu code xin để lại email để gửi bản mdb không khóa.
    Thân mến

    Cho mình xin số điện thoại của bạn mình muốn nghiên cứu code. vihung1976@gmail.com
  • RE: [Demo P1] Tạo khóa bản quyền cho phần mềm

    maidinhdan > 16-04-22, 12:36 AM

    Đã gửi 2 mail trên