zoukankan      html  css  js  c++  java
  • 用最简单的方法来为自己的软件产生序列号.

    思路是:用户提交网卡和CPU的字符串(先进行一下MD5这样不容易知道这个字符串是由什么构造出来的.)

    程序在进行判断时,把网卡和CPU组成的KEY,进行自己设定的次数据进行MD5与注册码进行判断,相等注册成功,不相等注册失败.够简单吧.

    1.首先需要获取网卡的MAC和CPU的ID,需要引用System.Management库

    1)获取MAC

       Public Function GetMac() As String
            Dim query As System.Management.ManagementObjectSearcher = New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration")
            Dim queryCollection As System.Management.ManagementObjectCollection = query.Get()
            For Each obj As System.Management.ManagementObject In queryCollection
                If obj.Item("IPEnabled").ToString = "True" Then
                    Return obj("MacAddress").ToString.Replace(":", "")
                End If
            Next
        End Function
    2)获取CPUID
        Public Function GetCpuID() As String
            Dim mc As System.Management.ManagementClass = New System.Management.ManagementClass("Win32_Processor")
            For Each obj As System.Management.ManagementObject In mc.GetInstances
                Return obj("ProcessorId").ToString
            Next
        End Function
    3)MD5算法
        Public Function MD5(ByVal key As String) As String
            Dim a As New System.Security.Cryptography.MD5CryptoServiceProvider
            Dim bySource As Byte() = System.Text.Encoding.ASCII.GetBytes(key)
    
            Dim byTarget As Byte()
            byTarget = a.ComputeHash(bySource)
    
            Dim stringbuff As New System.Text.StringBuilder
            For Each b As Byte In byTarget
                stringbuff.Append(b.ToString("x2"))
            Next
    
            Return stringbuff.ToString
        End Function
     
    4)用户的机器码
     
        Public Function GetNumber() As String
            Return MD5(Me.GetCpuID & Me.GetMac).ToUpper
        End Function
    5)注册窗口
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim key As New KeyHelper
            Me.txtkey.Text = key.GetNumber  '获取用户机器码
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Try
               '写入注册表
                Microsoft.VisualBasic.SaveSetting("at", "atsoft", "key", Me.txtcode.Text)
                Me.Close()
            Catch ex As Exception
    
            End Try
        End Sub
     
    6)注册码验证
     Dim reg As String = Microsoft.VisualBasic.GetSetting("at", "atsoft", "key", "")
                        If reg Is Nothing OrElse reg.Length = 0 Then
    
    '当前用户还没有注册
                        Else
    '获取机器码
                            Dim chars As String = key.GetNumber()
    '5次MD5在与注册表比较,也就是说用户发来了机器码后,注册机,也需要运行五次MD5
                            For i As Integer = 1 To 5
                                chars = key.MD5(chars).ToUpper
                            Next
                            If Not chars.Equals(reg) Then
    '注册成功
                                MessageBox.Show("OK", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
                            End If
                        End If
     
    就这样,一个简单的注册码验证的软件就完成了.
     
  • 相关阅读:
    Docker Secrets
    Docker swarm 使用服务编排部署lnmp
    Docker Swarm 服务编排之命令
    Docker Swarm应用--lnmp部署WordPress
    How to suppress 'Maybe this is program method' warnings from ProGuard
    ProGuard代码混淆详细攻略
    ProGuard代码混淆技术详解
    Web攻防之XSS,CSRF,SQL注入
    Spring中初始化bean和销毁bean的时候执行某个方法的详解
    数据库事务隔离级别+Spring 声明性事务隔离级别
  • 原文地址:https://www.cnblogs.com/zqonline/p/1320369.html
Copyright © 2011-2022 走看看