楚狂客 发表于 2026-8-7 08:57:39

我11楼啥时候给我激活下呀?格式不对么?

282563049 发表于 2026-8-7 09:50:19

好资料,下载一个,学习一下。

ZZDdong 发表于 2026-8-7 13:16:32

楚狂客 发表于 2026-8-7 08:57
我11楼啥时候给我激活下呀?格式不对么?

学校换成你自己的学校重新发一下

linxiansen 发表于 2026-8-7 16:43:12

提示这个被阻止的内容此文件中的 ActiveX 内容被阻止。怎么办

zylz9941 发表于 2026-8-7 17:30:56

楚狂客 发表于 2026-8-5 08:43
机器码:955BA2ADABF8E774
学校名:沙雅县英买力镇中心小学

楼主可能没有看到,临时给楼主代劳一下吧

看看行不行
F6E543A1F7687677388FA7C0927625C12608079999

ZZDdong 发表于 2026-8-7 18:40:37

linxiansen 发表于 2026-8-7 16:43
提示这个被阻止的内容此文件中的 ActiveX 内容被阻止。怎么办

问一下AI{:lol:}

ZZDdong 发表于 2026-8-7 18:41:29

zylz9941 发表于 2026-8-7 17:30
楼主可能没有看到,临时给楼主代劳一下吧

看看行不行


谢谢{:lol:}

ZZDdong 发表于 2026-8-7 20:30:44

又搞了一个





zylz9941 发表于 2026-8-8 09:51:13

ZZDdong 发表于 2026-8-7 20:30
又搞了一个

厉害厉害!!!

shaoge 发表于 2026-8-9 22:34:59

本帖最后由 shaoge 于 2026-8-9 22:38 编辑


# -*- coding: utf-8 -*-
"""
注册码计算工具
Python 3.9
GUI: Tkinter

与 VBA RegCore 中 GenCode 算法对应。

算法:
机器码:
    UCase(Left(MD5(CPU + BoardSerial + "kwzs2026"), 16))

注册码:
    UCase(MD5(机器码 + 学校名称UTF8Hex + YYMMDD + 天数)) + YYMMDD + 天数
"""

import hashlib
import tkinter as tk
from tkinter import ttk, messagebox
from datetime import datetime


SALT = "kwzs2026"


def md5(text: str) -> str:
    """计算 UTF-8 字符串 MD5"""
    return hashlib.md5(text.encode("utf-8")).hexdigest()


def string_to_utf8_hex(text: str) -> str:
    """
    对应 VBA:
      StringToUTF8Hex()

    中文按照 UTF-8 编码后转换为小写 Hex。
    """
    return text.encode("utf-8").hex()


def normalize_date(date_text: str) -> str:
    """
    将日期转换成 VBA 所要求的 6 位 YYMMDD。

    支持:
      2026-08-09
      2026/08/09
      2026.08.09
      260809
    """
    date_text = date_text.strip()

    if len(date_text) == 6 and date_text.isdigit():
      # 已经是 YYMMDD
      datetime.strptime(date_text, "%y%m%d")
      return date_text

    for fmt in ("%Y-%m-%d", "%Y/%m/%d", "%Y.%m.%d"):
      try:
            dt = datetime.strptime(date_text, fmt)
            return dt.strftime("%y%m%d")
      except ValueError:
            pass

    raise ValueError("注册日期格式错误,请使用 YYYY-MM-DD,例如 2026-08-09")


def normalize_days(days_text: str) -> str:
    """
    对应 VBA:
      ts = Right("0000" & Trim(ts), 4)
    """
    days_text = days_text.strip()

    if not days_text.isdigit():
      raise ValueError("授权天数必须是数字")

    days = int(days_text)

    if days < 0 or days > 9999:
      raise ValueError("授权天数必须在 0 ~ 9999 之间")

    return f"{days:04d}"


def generate_code(machine_code: str,
                  school_name: str,
                  register_date: str,
                  days: str) -> str:
    """
    对应 VBA GenCode()
    """
    machine_code = machine_code.strip().upper()
    school_name = school_name.strip()

    if not machine_code:
      raise ValueError("机器码不能为空")

    if not school_name:
      raise ValueError("学校名称不能为空")

    rq = normalize_date(register_date)
    ts = normalize_days(days)

    school_hex = string_to_utf8_hex(school_name)

    zcrqjtsa = rq + ts

    raw = machine_code + school_hex + zcrqjtsa

    digest = hashlib.md5(raw.encode("ascii")).hexdigest().upper()

    return digest + zcrqjtsa


def generate_machine_code(cpu_id: str, board_serial: str) -> str:
    """
    对应 VBA GetMachineCode()

    CPU + 主板序列号 + kwzs2026
    → MD5
    → 前16位
    → 大写
    """
    cpu_id = cpu_id.strip() or "UNKNOWN_CPU"
    board_serial = board_serial.strip() or "UNKNOWN_BOARD"

    raw = cpu_id + board_serial + SALT

    digest = hashlib.md5(raw.encode("ascii")).hexdigest()

    return digest[:16].upper()


class RegistrationGUI:
    def __init__(self, root):
      self.root = root
      self.root.title("注册码计算工具")
      self.root.geometry("650x500")
      self.root.resizable(False, False)

      self.build_ui()

    def build_ui(self):
      main = ttk.Frame(self.root, padding=20)
      main.pack(fill="both", expand=True)

      title = ttk.Label(
            main,
            text="注册码计算工具",
            font=("Microsoft YaHei UI", 18, "bold")
      )
      title.pack(pady=(0, 20))

      # 机器码
      ttk.Label(main, text="机器码:").pack(anchor="w")

      machine_frame = ttk.Frame(main)
      machine_frame.pack(fill="x", pady=(5, 15))

      self.machine_var = tk.StringVar()

      self.machine_entry = ttk.Entry(
            machine_frame,
            textvariable=self.machine_var,
            font=("Consolas", 11)
      )
      self.machine_entry.pack(
            side="left",
            fill="x",
            expand=True
      )

      ttk.Button(
            machine_frame,
            text="生成机器码",
            command=self.generate_machine
      ).pack(side="left", padx=(8, 0))

      # CPU
      ttk.Label(main, text="CPU ProcessorId:").pack(anchor="w")

      self.cpu_var = tk.StringVar()

      ttk.Entry(
            main,
            textvariable=self.cpu_var
      ).pack(fill="x", pady=(5, 15))

      # 主板
      ttk.Label(main, text="主板 SerialNumber:").pack(anchor="w")

      self.board_var = tk.StringVar()

      ttk.Entry(
            main,
            textvariable=self.board_var
      ).pack(fill="x", pady=(5, 15))

      # 学校名称
      ttk.Label(main, text="学校名称:").pack(anchor="w")

      self.school_var = tk.StringVar()

      ttk.Entry(
            main,
            textvariable=self.school_var
      ).pack(fill="x", pady=(5, 15))

      # 日期和天数
      date_frame = ttk.Frame(main)
      date_frame.pack(fill="x", pady=(0, 15))

      ttk.Label(
            date_frame,
            text="注册日期:"
      ).pack(side="left")

      self.date_var = tk.StringVar(
            value=datetime.now().strftime("%Y-%m-%d")
      )

      ttk.Entry(
            date_frame,
            textvariable=self.date_var,
            width=15
      ).pack(side="left", padx=(5, 30))

      ttk.Label(
            date_frame,
            text="授权天数:"
      ).pack(side="left")

      self.days_var = tk.StringVar(value="30")

      ttk.Entry(
            date_frame,
            textvariable=self.days_var,
            width=10
      ).pack(side="left", padx=5)

      ttk.Label(
            date_frame,
            text="(9999 = 永久)"
      ).pack(side="left")

      # 生成按钮
      ttk.Button(
            main,
            text="生成注册码",
            command=self.generate_registration_code
      ).pack(pady=10)

      # 结果
      ttk.Label(
            main,
            text="注册码:"
      ).pack(anchor="w", pady=(10, 5))

      result_frame = ttk.Frame(main)
      result_frame.pack(fill="x")

      self.result_var = tk.StringVar()

      self.result_entry = ttk.Entry(
            result_frame,
            textvariable=self.result_var,
            font=("Consolas", 11)
      )
      self.result_entry.pack(
            side="left",
            fill="x",
            expand=True
      )

      ttk.Button(
            result_frame,
            text="复制",
            command=self.copy_code
      ).pack(side="left", padx=(8, 0))

      # 状态
      self.status_var = tk.StringVar(
            value="就绪"
      )

      ttk.Label(
            main,
            textvariable=self.status_var
      ).pack(anchor="w", pady=(15, 0))

    def generate_machine(self):
      try:
            cpu = self.cpu_var.get()
            board = self.board_var.get()

            if not cpu:
                messagebox.showwarning(
                  "提示",
                  "请输入 CPU ProcessorId"
                )
                return

            if not board:
                messagebox.showwarning(
                  "提示",
                  "请输入主板 SerialNumber"
                )
                return

            code = generate_machine_code(
                cpu,
                board
            )

            self.machine_var.set(code)

            self.status_var.set(
                "机器码生成成功"
            )

      except Exception as e:
            messagebox.showerror(
                "错误",
                str(e)
            )

    def generate_registration_code(self):
      try:
            machine = self.machine_var.get()
            school = self.school_var.get()
            date_text = self.date_var.get()
            days = self.days_var.get()

            code = generate_code(
                machine,
                school,
                date_text,
                days
            )

            self.result_var.set(code)

            self.status_var.set(
                "注册码生成成功"
            )

            self.result_entry.select_range(
                0,
                tk.END
            )

      except Exception as e:
            messagebox.showerror(
                "生成失败",
                str(e)
            )

    def copy_code(self):
      code = self.result_var.get()

      if not code:
            messagebox.showwarning(
                "提示",
                "当前没有注册码"
            )
            return

      self.root.clipboard_clear()
      self.root.clipboard_append(code)
      self.root.update()

      self.status_var.set(
            "注册码已复制到剪贴板"
      )


def main():
    root = tk.Tk()


    RegistrationGUI(root)

    root.mainloop()


if __name__ == "__main__":
    main()
页: 1 2 3 4 5 6 [7] 8 9
查看完整版本: 初高中——考务助手【全自动AI破解启示】3天内免费算永久码