今天来给大家分享源码

import requests

import json

import random

import re

import time

from datetime import datetime

from tqdm import tqdm

from colorama import Fore, Back, Style, init

 

# 初始化颜色库

init(autoreset=True)

 

# ==================== 全局配置 ====================

API_TOKEN = ‘g09Z8azEGy0dxXPob8wYERPC65zEIIwHdsuWd/F5cyYBlRX/wn6DB7CqPP0RbMeRnNvR5Q5C4++Mi3NyJtZpaysJ9ZSAuy+w/kEquDji9G6gR4knC+EOM37XXQyN76fX1+TCH82a5TOWUE/ZfH+RKmzOcyHWNIZB+lVjA2Bw8E/yB7zqXgDkBU6TKFXHZ3XP6R6fT9CCzfOZQ50qeV4XQCM5Tl0w+ehsVuvoxBeZvJbWZzuajzdiwIr708nKqh8ZEwSX8Qlq4ZUFbYDr1H8myHZ8MHAIbABcsAju2Zg+5cAaXyEu+RAdeM2m1bopkU7MML8J3iou13+aj1R0aRoIjg==’

 

# ==================== 工具函数 ====================

def print_banner():

    “””ASCII艺术字欢迎界面”””

    print(Fore.CYAN + r”””WWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXKKK

WWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXKKK

WWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXXKK

WWWWWWWWWWWWWWWNWWWNNNNNNNNXK00KXXNNXXXXXXXXXXXXXXXXXXXXXXXK

WWWWWWWWWWWWWWWNWNNNNNNXOo:,””,:oOXXXXXXXXXXXXXXXXXXXXXXXX

WWWWWWWWWWWWWWWNWNNNNN0o;;;;;;;;;’.’o0XXXXXXXXXXXXXXXXXXXXXK

WWWWWWWWWWWWWWWWNNWNN0c:oxdddollcc:,.c0XXXXXXXXXXXXXXXXXXXKK

WWWWWWWWWWWWWWWWWNNNXxloodddddol:;;;”xKKKKXXXXXXXXXXXXXXKKK

WWWWWWWWWWWWWWNK0KNNXxlllc;:lc;,,”’,,oK0kk0XXKXKXXXXXKKKKKK

WWWWWWWWWWWNNNNOodk00xlllc;:lc::;;;;;,:dxxOKKKKKKXXXKKKKKKKK

WWWWWWWWNWWNKkxdok0kxxxddolll:,;ccc;;,,codxkO0KKKKKKKKKKKKKK

WWWWWWWWNWNNKkdoox00kxddollc:;,,;c:,,,;cllllodxO0KKKKKKKKKKK

WWWWWWWWNWWXOdkxdOKOoodollclc:;,,;;”,:llc:cllodkO0KKKKKKKKK

WWWWWWNWWNNNKKXkdkkodOkoclooocc:;,”’;clccclcccldxO00KKKKKKK

WWWWNNNNNNNNNNN0xkkO0XXOlc:;;,”…’,’,:;:llc:ccldxk00KKKKKK

WWWNNNNNNNNNNNNNX0kox0OOxl;,,”””cc. …,::::ccldxOO0KKKKK

WWNNNNNNNNNKOxoc;’..,’.’oxl::;;;::;,.. ..’,::codkO00KKKK

NNNNNNNNNNk,…………l0Okdolllc,. …,coxkOO0KKK

NNNNNNNNNk,………….;ONXkoodkd,. ‘ldxkO000K

NNNNNNNNKc……………xNKOO0K0o. .:odxkO000

NNNNNNNNk’…. ………lKKKXXXk’ ,loxxkO00

NNNNNNNXo….. .. …..:0KKXX0:. ‘cldxkOO0

NNNNNNN0;….. .. .dKKKKo. . .:cloxkOO

NNNNXNNx…… .c0Xkc’ .;::cldxk

NNNNXNXl….. ;O0:. .;;;:ccld

NNNNXNK:…. ‘kd. .,;;;::cl

NXNNXNO,.. .l’ .,;;;:::c

XXXXXNk’ .. .. .””.. .,;;;::::

XNNXXNk’ …. .;lcc:;. .,;;;;:::

XXNNXN0; ………. .,:;,’.. .,;;;;:::

“””)

 

# ==================== 辅助函数 ====================

def get_zodiac(year):

    “””生肖计算”””

    zodiacs = [‘鼠’,’牛’,’虎’,’兔’,’龙’,’蛇’,’马’,’羊’,’猴’,’鸡’,’狗’,’猪’]

    return zodiacs[(year – 1900) % 12]

 

def get_constellation(month, day):

    “””星座计算”””

    constellations = [(1,20,’摩羯座’), (2,19,’水瓶座’), (3,21,’双鱼座’),

                     (4,20,’白羊座’), (5,21,’金牛座’), (6,22,’双子座’),

                     (7,23,’巨蟹座’), (8,23,’狮子座’), (9,23,’处女座’),

                     (10,24,’天秤座’), (11,22,’天蝎座’), (12,22,’射手座’)]

    return next((c[2] for c in constellations if (month,day) <= (c[0],c[1])), ‘摩羯座’)

 

def show_loading():

    “””加载动画”””

    for _ in range(3):

        print(Fore.YELLOW + ‘处理中…’, end=’\r’)

        time.sleep(0.3)

        print(‘ ‘ * 15, end=’\r’)

        time.sleep(0.2)

 

# ==================== 身份证核心功能 ====================

def validate_id_structure(id_number):

    “””身份证结构验证”””

    area_codes = [’11’,’12’,’13’,’14’,’15’,’21’,’22’,’23’,’31’,’32’,’33’,

                 ’34’,’35’,’36’,’37’,’41’,’42’,’43’,’44’,’45’,’46’,’50’,

                 ’51’,’52’,’53’,’54’,’61’,’62’,’63’,’64’,’65’]

    

    if not id_number.isdigit() or len(id_number) != 17:

        return False, “格式错误”

    if id_number[0:2] not in area_codes:

        return False, “地区代码无效”

    

    try:

        birth_date = datetime.strptime(id_number[6:14], “%Y%m%d”)

        if birth_date.year < 1900 or birth_date.year > datetime.now().year:

            return False, “出生年份无效”

    except ValueError:

        return False, “出生日期无效”

    

    return True, “验证通过”

 

def parse_id_info(id_number):

    “””身份证信息解析”””

    area_map = {

        ’11’:’北京市’, ’12’:’天津市’, ’13’:’河北省’, ’14’:’山西省’,

        ’15’:’内蒙古’, ’31’:’上海市’, ’32’:’江苏省’, ’33’:’浙江省’,

        ’34’:’安徽省’, ’35’:’福建省’, ’36’:’江西省’, ’37’:’山东省’,

        ’41’:’河南省’, ’42’:’湖北省’, ’43’:’湖南省’, ’44’:’广东省’,

        ’45’:’广西’, ’46’:’海南省’, ’50’:’重庆市’, ’51’:’四川省’,

        ’52’:’贵州省’, ’53’:’云南省’, ’54’:’西藏’, ’61’:’陕西省’,

        ’62’:’甘肃省’, ’63’:’青海省’, ’64’:’宁夏’, ’65’:’新疆’

    }

    

    birth_date = datetime.strptime(id_number[6:14], “%Y%m%d”)

    return {

        ‘地区’: area_map.get(id_number[0:2], ‘未知地区’),

        ‘出生日期’: birth_date.strftime(“%Y年%m月%d日”),

        ‘性别’: “男” if int(id_number[16]) % 2 else “女”,

        ‘生肖’: get_zodiac(birth_date.year),

        ‘星座’: get_constellation(birth_date.month, birth_date.day),

        ‘年龄’: datetime.now().year – birth_date.year

    }

 

def calculate_id_last_digit(id_number):

    “””计算校验码”””

    if len(id_number) != 17:

        return Fore.RED + “❌ 需要17位号码”

    

    is_valid, msg = validate_id_structure(id_number)

    if not is_valid:

        return Fore.RED + f”❌ 验证失败:{msg}”

    

    weight = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]

    check_code = [‘1′,’0′,’X’,’9′,’8′,’7′,’6′,’5′,’4′,’3′,’2′]

    total = sum(int(n)*w for n,w in zip(id_number, weight))

    

    full_id = id_number + check_code[total % 11]

    info = parse_id_info(full_id)

    info_str = ‘\n’.join([f”{k}: {v}” for k, v in info.items()])

    return Fore.GREEN + f”✅ 完整号码:{full_id}\n” + Fore.CYAN + “📝 解析信息:\n” + info_str

 

# ==================== 验证功能 ====================

def verify_two_factors(name, id_number):

    “””二要素核验”””

    if len(id_number) == 17:

        result = calculate_id_last_digit(id_number)

        if “❌” in result: return result

        id_number = result.split(“:”)[1][:18]

    elif len(id_number) != 18:

        return Fore.RED + “❌ 身份证长度错误”

    

    show_loading()

    

    headers = {

        ‘Host’: ‘wsbz.43id.cn’,

        ‘User-Agent’: ‘Mozilla/5.0 (iPhone; CPU iPhone OS 16_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.49(0x18003137) NetType/4G Language/zh_CN’,

        ‘token’: API_TOKEN

    }

    

    try:

        response = requests.post(

            ‘https://wsbz.43id.cn/sfzsl/api/sfz/queryHandleDetial’,

            headers=headers,

            json={

                “sqrsfhm”: id_number,

                “sqrxm”: name,

                “sqrhh”: “0000”,

                “sqrdlpz”: “wxb49f8441aa6ef3c0”

            },

            timeout=10

        )

        

        status_map = {

            “30”: (Fore.GREEN, “✅ 验证成功”, “🎉 验证通过”),

            “20”: (Fore.RED, “❌ 验证失败”, “⚠️ 信息不匹配”),

            “40”: (Fore.YELLOW, “⚠️ 请求过频”, “请稍后重试”),

            “50”: (Fore.RED, “⛔ 服务错误”, “请联系管理员”)

        }

        

        status = response.json().get(‘statusCode’, ‘unknown’)

        color, title, tip = status_map.get(status, (Fore.YELLOW, “⚠️ 未知错误”, “建议重试”))

        return f”{color}{title}\n姓名:{name}\n身份证:{id_number}\n{tip}”

        

    except Exception as e:

        return Fore.RED + f”⛔ 网络错误:{str(e)}”

 

# ==================== 深度趣味功能 ====================

def get_historical_events(month, day):

    “””历史上的今天”””

    events = {

        ‘0101’: [(’45 BC’, ‘儒略历开始使用’), (‘1863’, ‘林肯签署《解放宣言》’)],

        ‘0214’: [(‘270’, ‘圣瓦伦丁殉道’), (‘1929’, ‘情人节大屠杀’)],

        ‘0704’: [(‘1776’, ‘美国独立宣言签署’)],

        ‘1024’: [(‘1945’, ‘联合国成立’)],

        ‘1225’: [(‘800’, ‘查理曼加冕’), (‘1642′,’牛顿诞生’)]

    }

    key = f”{month:02d}{day:02d}”

    return events.get(key, [(‘1994′,’中国接入国际互联网’)]) # 默认事件

 

def generate_lucky_numbers(age):

    “””生成幸运数字”””

    base = age % 10 + 1

    return sorted(random.sample(range(base, base+30), 5))

 

def get_age_facts(age):

    “””年龄冷知识”””

    facts = [

        f”您的人生进度条:{age}/100″,

        f”您已经历{age*365}个日出日落”,

        f”您的心脏大约跳动过{age*35000000:,}次”,

        f”您相当于{age*7}狗年或{age//9}猫年”

    ]

    return random.sample(facts, 2)

 

def fortune_telling():

    “””综合运势分析”””

    try:

        birth = input(“请输入生日(MMDD格式,如0228): “).strip()

        if len(birth) != 4 or not birth.isdigit():

            raise ValueError

        

        month, day = int(birth[:2]), int(birth[2:])

        if month <1 or month>12 or day<1 or day>31:

            raise ValueError

 

        zodiac = get_zodiac(datetime.now().year)

        constellation = get_constellation(month, day)

        age = datetime.now().year – (2000 + int(birth[:2]) if int(birth[:2]) < 50 else 1900 + int(birth[:2]))

        

        # 构建结果

        result = [

            Fore.CYAN + “✨ 综合运势分析 ✨”,

            f”📅 生日:{month}月{day}日”,

            f”🐉 生肖:{zodiac}”,

            f”🌌 星座:{constellation}”,

            “”,

            Fore.YELLOW + “📜 历史上的今天:”

        ]

        

        # 添加历史事件

        for year, event in get_historical_events(month, day):

            result.append(f”• {year}年:{event}”)

            

        # 添加年龄信息

        result.extend([

            “”,

            Fore.MAGENTA + “🔢 数字命理:”,

            f”幸运数字:{‘, ‘.join(map(str, generate_lucky_numbers(age)))}”

        ])

        

        # 添加冷知识

        result.extend([

            “”,

            Fore.GREEN + “🧠 冷知识:”

        ] + get_age_facts(age))

        

        # 添加建议

        result.extend([

            “”,

            Fore.BLUE + “💡 今日建议:”,

            random.choice([

                “适合开展新项目,但需注意细节”,

                “与家人沟通会有意外收获”,

                “财务方面请三思而后行”,

                “尝试学习新技能会有惊喜”,

                “给久未联系的朋友发个消息吧”

            ])

        ])

        

        return ‘\n’.join(result)

        

    except:

        return Fore.RED + “⚠️ 请输入正确的生日格式(如:0228)”

 

# ==================== 菜单系统 ====================

def handle_id_tool():

    “””身份证工具”””

    while True:

        print(“\n” + Fore.BLUE + “-“*30)

        print(Fore.YELLOW + “1. 计算校验码\n2. 解析信息\n3. 返回”)

        choice = input(Fore.GREEN + “请选择: “).strip()

        

        if choice == ‘1’:

            id_input = input(“请输入17位身份证号码: “).strip()

            print(calculate_id_last_digit(id_input))

        elif choice == ‘2’:

            id_input = input(“请输入18位身份证号码: “).strip()

            if len(id_input) != 18:

                print(Fore.RED + “❌ 需要完整身份证号码”)

                continue

            info = parse_id_info(id_input)

            print(Fore.CYAN + “📝 解析信息:\n” + ‘\n’.join([f”{k}: {v}” for k, v in info.items()]))

        elif choice == ‘3’:

            break

 

def main():

    print_banner()

    print(Fore.MAGENTA + “🌟 欢迎使用【孙笑川】身份系统 🌟”)

    

    while True:

        print(“\n” + Fore.BLUE + “=”*40)

        print(Fore.YELLOW + “主菜单:\n1. 身份证工具\n2. 实名验证\n3. 运势分析\n4. 退出”)

        choice = input(Fore.GREEN + “请输入选项: “).strip()

        

        if choice == ‘1’:

            handle_id_tool()

        elif choice == ‘2’:

            name = input(“姓名: “).strip()

            id_num = input(“身份证号: “).strip()

            print(verify_two_factors(name, id_num))

        elif choice == ‘3’:

            print(fortune_telling())

        elif choice == ‘4’:

            print(Fore.YELLOW + “✨ 感谢使用,祝您心想事成!”)

            break

 

if __name__ == “__main__”:

    main()

import pyzipper

zd = open(‘/storage/emulated/0/我的文件夹/m.txt’)

fp = pyzipper.AESZipFile(‘/storage/emulated/0/我的文件夹/文本编辑器代码编辑_2.0.0.zip’)

for pwd in zd:

    pwd = pwd.rstrip()

    try:

        fp.extract(pwd=pwd.encode(‘utf-8’))

        fp.close()

        print(‘密码破解成功:’+pwd)

    except:

        print(‘密码错误’)

源码皆为开源           

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容