亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python Des加密解密怎樣實現軟件注冊碼機器碼

發布時間:2021-02-02 10:01:47 來源:億速云 閱讀:531 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Python Des加密解密怎樣實現軟件注冊碼機器碼,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

原理

  • 判斷路徑下是否存在識別文件,若存在就解密對比,若不存在就進入機器碼注冊:

  • 獲取系統C盤序列號作為識別ID,并添加隨機數作為混淆,生成最終機器碼。

  • 將機器碼發給軟件開發者,開發者將機器碼解密后,添加自己的標識符號并加密生成key,發給用戶。

  • 用戶輸入key,程序對比并保存。

  • 用戶下次打開軟件時,重新開始步驟‘1'。

說明

  • 加密:將序列號經過Des加密,再經過base64編碼。

  • 解密:將密碼經過base64解碼,再經過Des解密。

  • 寫文件:將二進制字符轉為十六進制保存。

  • 讀文件:將十六進制轉為二進制。

代碼

# coding: utf-8
 
import win32api
import pyDes
from binascii import b2a_hex, a2b_hex
import base64
import os
def getCVolumeSerialNumber():
  CVolumeSerialNumber=win32api.GetVolumeInformation("C:\\")[1]
  # print(CVolumeSerialNumber)
  if CVolumeSerialNumber:
    return str(CVolumeSerialNumber)
  else:
    return 0
 
def DesEncrypt(str):
  k = pyDes.des(Des_Key, pyDes.CBC, Des_IV, pad=None, padmode=pyDes.PAD_PKCS5)
  encryptStr = k.encrypt(str)
  string = base64.b64encode(encryptStr)
  # print(string)
  return string # 轉base64編碼返回
 
def DesDecrypt(string):
  string = base64.b64decode(string)
  k = pyDes.des(Des_Key, pyDes.CBC, Des_IV, pad=None, padmode=pyDes.PAD_PKCS5)
  decryptStr = k.decrypt(string)
  # print(decryptStr)
  return decryptStr
 
Des_Key = "12345678" # Key
Des_IV = "12345678" # 自定IV向量
def Register():
  if os.path.isfile('conf.bin'):
    with open('conf.bin', 'rb') as fp:
      key = a2b_hex(fp.read())
      print(key)
    serialnumber = getCVolumeSerialNumber()
    decryptstr = DesDecrypt(key).decode('utf8')
    print(decryptstr)
    if serialnumber in decryptstr:
      if 'Buy' in decryptstr:
        print('>> Buy')
        print(">> 驗證完成")
        return 1
      elif 'Trial' in decryptstr:
        print('>> Trial')
        return 2
  rand = str(random.randrange(1, 1000))
  serialnumber = getCVolumeSerialNumber() + rand
  print(serialnumber)
  encryptstr = DesEncrypt(serialnumber).decode('utf8')
  print(">> 序列號:", encryptstr)
  while True:
    key = input(">> 驗證碼:")
    try:
      decryptstr = DesDecrypt(key.encode('utf8')).decode('utf8')
      print(decryptstr)
      if serialnumber in decryptstr:
        if 'Buy' in decryptstr:
          print('>> Buy')
          with open('conf.bin', 'wb') as fp:
            fp.write(b2a_hex(key.encode('utf8')))
            print(">> 驗證完成")
          return 1
        elif 'Trial' in decryptstr:
          print('>> Trial')
          return 2
    except Exception as e:
      print(e)
      print(">> 輸入錯誤")
      continue

效果

Python Des加密解密怎樣實現軟件注冊碼機器碼

Python Des加密解密怎樣實現軟件注冊碼機器碼

關于“Python Des加密解密怎樣實現軟件注冊碼機器碼”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仙居县| 崇仁县| 乌拉特前旗| 陈巴尔虎旗| 绥化市| 永兴县| 永吉县| 华蓥市| 廉江市| 抚顺县| 普定县| 锡林郭勒盟| 乐昌市| 新疆| 株洲县| 南靖县| 苗栗市| 黄浦区| 晴隆县| 林芝县| 元谋县| 横山县| 玛曲县| 乃东县| 眉山市| 霍山县| 潍坊市| 容城县| 英吉沙县| 琼结县| 肥乡县| 大港区| 西充县| 辉县市| 阿荣旗| 泸西县| 台安县| 金塔县| 夏邑县| 大姚县| 收藏|