一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python Des加密解密如何實現軟件注冊碼機器碼

Python Des加密解密如何實現軟件注冊碼機器碼

2020-05-04 12:10小鋒學長 Python

這篇文章主要介紹了Python Des加密解密如何實現軟件注冊碼機器碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了Python Des加密解密如何實現軟件注冊碼機器碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

原理

  • 判斷路徑下是否存在識別文件,若存在就解密對比,若不存在就進入機器碼注冊:
  • 獲取系統C盤序列號作為識別ID,并添加隨機數作為混淆,生成最終機器碼。
  • 將機器碼發給軟件開發者,開發者將機器碼解密后,添加自己的標識符號并加密生成key,發給用戶。
  • 用戶輸入key,程序對比并保存。
  • 用戶下次打開軟件時,重新開始步驟‘1'。

說明

  • 加密:將序列號經過Des加密,再經過base64編碼。
  • 解密:將密碼經過base64解碼,再經過Des解密
  • 寫文件:將二進制字符轉為十六進制保存。
  • 讀文件:將十六進制轉為二進制。

代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# 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加密解密如何實現軟件注冊碼機器碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/sxf1061700625/p/11452087.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲男人的天堂成人 | 美女扒开粉嫩尿口漫画 | 国产亚洲精品激情一区二区三区 | 日本高清动作片www欧美 | 四虎永久 | 沉香如屑西瓜视频免费观看完整版 | 久久免费看少妇高潮A片2012 | 日韩香蕉网 | 国产麻豆流白浆在线观看 | 日韩欧美色图 | 成年人免费观看 | 女bbbbxxxx视频 | 美女用手扒开粉嫩的屁股 | 超强台风免费观看完整版视频 | 国产成人精品视频午夜 | 四虎永久网址影院 | 2022最新a精品视频在线观看 | 亚洲乱亚洲23p女 | 德国高清freexxxx性 | chinese老头和老太交hd | 免费观看在线 | 国产91精品露脸国语对白 | 国产乱子伦真实china | 扒开双腿羞辱调教play视频 | 日本邪恶动态 | 美女全身体光羞羞漫画 | 深夜在线网址 | 精品国产线拍大陆久久尤物 | 韩国美女主播在线 | 色姑娘色综合 | 无人区尖叫之夜美女姐姐视频 | 国产精品久久久免费视频 | 国产高清视频 | 国产日韩欧美精品在线 | 免费大秀视频在线播放 | 久久最新地址获取 | 人成网站在线观看 | ferr孕妇videos毛茸茸 | 欧美va免费大片 | 加勒比一本大道香蕉在线视频 | 欧美日韩免费一区二区在线观看 |