易語言注冊機生成永久或限時注冊碼的寫法
更新時間:2018年11月24日 10:14:26 作者:易語言源碼教程
今天小編就為大家分享一篇關于易語言注冊機生成永久或限時注冊碼的寫法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
DLL命令表
.版本 2 .DLL命令 CryptCreateHash, 整數(shù)型, "advapi32.dll", "CryptCreateHash", 公開 .參數(shù) hProv, 整數(shù)型 .參數(shù) Algid, 整數(shù)型 .參數(shù) hKey, 整數(shù)型 .參數(shù) dwFlags, 整數(shù)型 .參數(shù) phHash, 整數(shù)型, 傳址 .DLL命令 CryptDestroyHash, 整數(shù)型, "advapi32.dll", "CryptDestroyHash", 公開 .參數(shù) hHash, 整數(shù)型, 傳址 .DLL命令 CryptGetHashParam, 整數(shù)型, "advapi32.dll", "CryptGetHashParam", 公開 .參數(shù) hHash, 整數(shù)型 .參數(shù) dwParam, 整數(shù)型 .參數(shù) pByte, 字節(jié)集 .參數(shù) pdwDataLen, 整數(shù)型, 傳址 .參數(shù) dwFlags, 整數(shù)型 .DLL命令 CryptReleaseContext, 整數(shù)型, "advapi32.dll", "CryptReleaseContext", 公開 .參數(shù) hProv, 整數(shù)型, 傳址 .參數(shù) dwFlags, 整數(shù)型, 傳址 .DLL命令 CryptHashData, 整數(shù)型, "advapi32.dll", "CryptHashData", 公開 .參數(shù) hHash, 整數(shù)型 .參數(shù) pbData, 字節(jié)集, 傳址 .參數(shù) dwDataLen, 整數(shù)型 .參數(shù) dwFlags, 整數(shù)型 .DLL命令 CryptAcquireContextA, 整數(shù)型, "advapi32.dll", "CryptAcquireContextA", 公開 .參數(shù) phProv, 整數(shù)型, 傳址 .參數(shù) pszContainer, 文本型 .參數(shù) pszProvider, 文本型 .參數(shù) dwProvType, 整數(shù)型 .參數(shù) dwFlags, 整數(shù)型
生成注冊碼的代碼
.版本 2 .支持庫 dp1 .程序集 窗口程序集1 .子程序 _生成按鈕_被單擊 .局部變量 sj1, 文本型 .局部變量 sj2, 文本型 .局部變量 sj3, 文本型 .局部變量 臨時文本, 文本型 .局部變量 臨時時間, 日期時間型 .如果 (類型組合框.現(xiàn)行選中項 = 0) 臨時時間 = [2080年12月31日] .否則 臨時時間 = 日期框.今天 .如果結束 sj1 = 到文本 (取年份 (臨時時間)) sj2 = 到文本 (取月份 (臨時時間)) sj2 = 選擇 (取文本長度 (sj2) = 1, “0” + sj2, sj2) sj3 = 到文本 (取日 (臨時時間)) sj3 = 選擇 (取文本長度 (sj3) = 1, “0” + sj3, sj3) 臨時文本 = 到文本 (左移 (到數(shù)值 (sj1 + sj2 + sj3), 4)) 臨時文本 = 進制_十到十六 (到數(shù)值 (臨時文本)) 臨時文本 = 臨時文本 + 進制_十到十六 (取文本長度 (臨時文本) + 1) 臨時文本 = 到大寫 (取數(shù)據(jù)摘要 (到字節(jié)集 (機器碼編輯框.內(nèi)容 + 校驗_取sha1 (到字節(jié)集 (機器碼編輯框.內(nèi)容))))) + 臨時文本 注冊碼編輯框.內(nèi)容 = 臨時文本 置剪輯板文本 (注冊碼編輯框.內(nèi)容) .子程序 _類型組合框_列表項被選擇 .如果 (類型組合框.現(xiàn)行選中項 = 0) 日期框.禁止 = 真 .否則 日期框.禁止 = 假 .如果結束 .子程序 進制_十到十六, 文本型, 公開, 運算_十進制到十六進制 .參數(shù) 十進制數(shù), 整數(shù)型 返回 (取十六進制文本 (十進制數(shù))) .子程序 校驗_取sha1, 文本型, 公開, 返回40位的校驗數(shù)據(jù) .參數(shù) 字節(jié)集數(shù)據(jù), 字節(jié)集, , 要取數(shù)據(jù)摘要的字節(jié)集 返回 (到小寫 (MD過程 (字節(jié)集數(shù)據(jù), 32772, 20))) .子程序 MD過程, 文本型 .參數(shù) x, 字節(jié)集 .參數(shù) 種類, 整數(shù)型 .參數(shù) 長度, 整數(shù)型 .局部變量 hCryptProv, 整數(shù)型 .局部變量 hKey, 整數(shù)型 .局部變量 hHash, 整數(shù)型 .局部變量 pbBuffer, 字節(jié)集 .局部變量 cbHash, 整數(shù)型 .局部變量 rgbHash, 字節(jié)集 .局部變量 rgbDigits, 字節(jié)集 .局部變量 局_MD5, 字節(jié)集 .局部變量 b, 整數(shù)型 .局部變量 i, 整數(shù)型 .局部變量 len, 整數(shù)型 .如果 (CryptAcquireContextA (hCryptProv, “”, “”, 1, -268435456) = 0) .如果真 (CryptAcquireContextA (hCryptProv, “”, “”, 1, 0) = 0) 返回 (“”) .如果真結束 .否則 .如果 (CryptCreateHash (hCryptProv, 種類, hKey, 0, hHash) = 0) CryptReleaseContext (hCryptProv, 0) 返回 (“”) .否則 pbBuffer = x len = 取字節(jié)集長度 (x) .如果 (CryptHashData (hHash, pbBuffer, len, 0) = 0) CryptDestroyHash (hHash) CryptReleaseContext (hCryptProv, 0) 返回 (“”) .否則 rgbHash = 取空白字節(jié)集 (長度) cbHash = 長度 .如果 (CryptGetHashParam (hHash, 2, rgbHash, cbHash, 0) = 0) CryptDestroyHash (hHash) CryptReleaseContext (hCryptProv, 0) 返回 (“”) .否則 rgbDigits = 到字節(jié)集 (“0123456789ABCDEF”) 局_MD5 = 取空白字節(jié)集 (長度 × 2) .變量循環(huán)首 (0, cbHash - 1, 1, i) b = rgbHash [i + 1] 局_MD5 [i × 2 + 1] = rgbDigits [右移 (b, 4) + 1] 局_MD5 [i × 2 + 2] = rgbDigits [位與 (b, 15) + 1] .變量循環(huán)尾 () CryptDestroyHash (hHash) CryptReleaseContext (hCryptProv, 0) .如果結束 .如果結束 .如果結束 .如果結束 返回 (到文本 (局_MD5))
運行結果:
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
您可能感興趣的文章: