from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64
import hashlib

# 加密函数
def encrypt(plain_text, key):
    key = hashlib.sha256(key.encode('utf-8')).digest()[:16]  # 保证密钥为16字节
    cipher = AES.new(key, AES.MODE_CBC)  # CBC模式
    ct_bytes = cipher.encrypt(pad(plain_text.encode('utf-8'), AES.block_size))
    iv = base64.b64encode(cipher.iv).decode('utf-8')
    ct = base64.b64encode(ct_bytes).decode('utf-8')
    return iv + ct  # 返回初始化向量和密文

# 解密函数
def decrypt(cipher_text, key):
    key = hashlib.sha256(key.encode('utf-8')).digest()[:16]  # 保证密钥为16字节
    iv = base64.b64decode(cipher_text[:24])  # 提取初始化向量
    ct = base64.b64decode(cipher_text[24:])  # 提取密文
    cipher = AES.new(key, AES.MODE_CBC, iv)
    decrypted = unpad(cipher.decrypt(ct), AES.block_size)
    return decrypted.decode('utf-8')

# 使用示例
key = 'thisisaverysecret'  # 16字节的密钥
phone_number = '8616533817456'



# 使用示例
key = 'thisisaverysecret'  # 16字节的密钥

if __name__ == '__main__':

    with open('phones.txt', 'r', encoding='utf-8') as f:
        content = f.read()

    tasks = []  # 创建任务列表
    lines = content.split('\n')

    n = 0
    for _, line in enumerate(lines):
        print(line)

        phone_number =line

        # 加密
        encrypted = encrypt(phone_number, key)
        # print("Encrypted:", encrypted)

        print(f"http://205.198.72.45:5000/get_verification_code?token={encrypted}")

