天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁(yè) > 科技論文 > 軟件論文 >

軟件的加密——注冊(cè)碼實(shí)現(xiàn)原理

發(fā)布時(shí)間:2015-02-11 21:12

摘 要:

摘 要:很多共享軟件有一定的試用期,試用期過(guò)后,需要注冊(cè)才能夠繼續(xù)使用。注冊(cè)時(shí)需要把使用軟件時(shí)出現(xiàn)的一個(gè)序列號(hào)給人家發(fā)過(guò)去,而后產(chǎn)權(quán)所有人給你注冊(cè)號(hào)碼。并且一機(jī)一個(gè)號(hào)碼,最大限度防止盜用別人的成果。下面介紹的就是在VB中獲取計(jì)算機(jī)的硬件信息,從而通過(guò)一定的算法給出注冊(cè)碼,實(shí)現(xiàn)軟件加密。

關(guān)鍵詞:

關(guān)鍵詞: 軟件加密 注冊(cè)碼 防盜

——聲明中建立如下代碼:

String, ByVal nVolumeNameSize As Integer, lpVolumeSerialNumber As Long,lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal      lpFileSystemNameBuffer As String, ByVal  nFileSystemNameSize As Long) As Long

新建一個(gè)函數(shù):

Function GetSerialNumber(strDrive As String) As Long

     Dim SerialNum As Long

     Dim Res As Long

     Dim Temp1 As String

     Dim Temp2 As String

     Temp1 = String$(255, Chr$(0))

     Temp2 = String$(255, Chr$(0))

     Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))

     GetSerialNumber = SerialNum

     End Function

單擊“注冊(cè)”按鈕事件代碼如下:

Private Sub Command1_Click()

     If Text2 <> CStr(GetSerialNumber("C:")-123*9) Then //注冊(cè)碼算法

     Else

        Unload Me

//執(zhí)行正常運(yùn)行的代碼

     End If

     End Sub

窗體激活代碼如下:

Private Sub Form_Activate()

     Text1.Text = GetSerialNumber("C:")

     End Sub

整個(gè)程序運(yùn)行后,出現(xiàn)兩個(gè)文本框和一個(gè)“注冊(cè)”按鈕,一個(gè)文本框顯示計(jì)算機(jī)硬盤序列號(hào),第二個(gè)文本框需輸入正確注冊(cè)號(hào),,點(diǎn)“注冊(cè)”程序正常運(yùn)行,否則程序要求輸入正確序列號(hào)。

序列號(hào)。

Private   Type   OSVERSIONINFO  

  dwOSVersionInfoSize  As  Long  

  dwMajorVersion  As  Long  

  dwMinorVersion  As  Long  

  dwBuildNumber  As  Long  

  dwPlatformId  As  Long  

  szCSDVersion  As  String *  128    ' Maintenance   string   for   PSS   usage  

  End   Type  

Private   Declare   Function   GetVersionEx   Lib   "kernel32"   Alias   "GetVersionExA"   (lpVersionInformation   As   OSVERSIONINFO)   As   Long

  Private   Declare   Function   GetComputerName   Lib   "kernel32"   Alias   "GetComputerNameA"   (ByVal   lpBuffer   As   String,   nSize   As   Long)   As   Long  

  Private   Const   VER_PLATFORM_WIN32_NT   =   2  

  Private   Const   VER_PLATFORM_WIN32_WINDOWS   =   1  

  Private   Const   VER_PLATFORM_WIN32s   =   0  

窗體激活代碼如下:

Private Sub Form_Activate()

     Dim   len5   As   Long,   aa   As   Long  

          Dim   cmprName   As   String  

          Dim   osver   As   OSVERSIONINFO  

          cmprName   =   String(255,   0)

          len5   =   256  

          aa   =   GetComputerName(cmprName,   len5)  

          cmprName   =   Left(cmprName,   InStr(1,   cmprName,   Chr(0))   -   1)  

          Set   CPUs   =   GetObject("winmgmts:{impersonationLevel=impersonate}!\"   &   Computer   &   "rootcimv2").ExecQuery("select   *   from   Win32_Processor")  

          For   Each   mycpu   In   CPUs  

              Text1.Text   =   mycpu.ProcessorId  

          Next  

     End Sub

下運(yùn)行通過(guò)。



本文編號(hào):14738

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/14738.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶81e87***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com