吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 376|回复: 9
收起左侧

[经验求助] python aes cbc加密 求助大神

[复制链接]
wwj830 发表于 2024-7-4 14:51
50吾爱币
https://www.iamwawa.cn/aes.html
求助大神这个怎么用python实现的
不需要偏移量,密钥也是不固定长度的,找了好多方法都不行

最佳答案

查看完整内容

从百度搜刮的代码,能用!!! [mw_shl_code=python,true]from Crypto import Random from Crypto.Cipher import AES import base64 from hashlib import md5 def pad(data): length = 16 - (len(data) % 16) return data.encode(encoding='utf-8') + (chr(length)*length).encode(encoding='utf-8') def unpad(data): return data[:-(data[-1] if type(data[-1]) == int else ord(data[-1]))] ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ligxi 发表于 2024-7-4 14:51
从百度搜刮的代码,能用!!!
[Python] 纯文本查看 复制代码
from Crypto import Random
from Crypto.Cipher import AES
import base64
from hashlib import md5

def pad(data):
    length = 16 - (len(data) % 16)
    return data.encode(encoding='utf-8') + (chr(length)*length).encode(encoding='utf-8')

def unpad(data):
    return data[:-(data[-1] if type(data[-1]) == int else ord(data[-1]))]

def bytes_to_key(data, salt, output=48):
    data=data.encode(encoding='utf-8')
    assert len(salt) == 8, len(salt)
    data += salt
    key = md5(data).digest()
    final_key = key
    while len(final_key) < output:
        key = md5(key + data).digest()
        final_key += key
    return final_key[:output]

def encrypt(message, passphrase):
    salt = Random.new().read(8)
    key_iv = bytes_to_key(passphrase, salt, 32+16)
    key = key_iv[:32]
    iv = key_iv[32:]
    aes = AES.new(key, AES.MODE_CBC, iv)
    return base64.b64encode(b"Salted__" + salt + aes.encrypt(pad(message)))

def decrypt(encrypted, passphrase):
    encrypted = base64.b64decode(encrypted)
    assert encrypted[0:8] == b"Salted__"
    salt = encrypted[8:16]
    key_iv = bytes_to_key(passphrase, salt, 32+16)
    key = key_iv[:32]
    iv = key_iv[32:]
    aes = AES.new(key, AES.MODE_CBC, iv)
    return unpad(aes.decrypt(encrypted[16:]))

if __name__ == '__main__':
    # 加密
    key = 'A1b2C3d4E5f6G7h8I9j0K!#'
    data = '{"address":"0x32185387A611F9C49F90f99b61e37B39c3B1E4E1","projectId":"0x307832356562396465383466363163346362343462373431343034316561666637383836393861633534633565623436313835393166663931303665353130303065"}'
    encrypt_data = encrypt(data, key)
    print(encrypt_data)
    # 解密
    encrypt_data = 'U2FsdGVkX1+Go0Z4GVGrZftuTEh/nrzrBm6Gu9S4T9x6u9OPINhm8vmG7ezeNUgpNn2PzADjZHHXB1NWWMX9q+C+BaYD++XWvfyO4d9ccwM4H7IehwMR0DQWmxx3S9ShqxOW+fWCLlB9Jo/GQAV+7b7IkehGfiIwPNr+FzxnTrgPqivf/6E0+uqJl11BRs6Uc9/9KjneT2pFxJxBOBPsWJs1qhcjRzXWfjEKa+GXTO1kovYKw1i4T/o8TeULym0sWu2xD/9gQFhANEOX9o8elLEso+SRbdfG7nM7sbBVvhU='
    decrypt_data = decrypt(encrypt_data, key)
    print(decrypt_data)

yuhuofei9527 发表于 2024-7-4 15:09
 楼主| wwj830 发表于 2024-7-4 15:14
yuhuofei9527 发表于 2024-7-4 15:09
你是要自己写算法?   导入库来实现啊

就是用库啊,但是库都需要偏移量还有固定的密钥,但是他这个网站为啥不用
BoyInTheSun 发表于 2024-7-4 15:19
pycrypto,轮子,没有什么难度。
偏移量值iv吗?学名叫初始向量,随机生成即可,但不应泄露或存在规律。某些密码分组模式无需iv。
aes密钥长度为定长,如果不是则需要密钥扩展算法,不属于aes的范畴。

看你的描述应该是没深入了解过aes。
yuhuofei9527 发表于 2024-7-4 15:24
wwj830 发表于 2024-7-4 15:14
就是用库啊,但是库都需要偏移量还有固定的密钥,但是他这个网站为啥不用

偏移量可以不写,  秘钥网站没写就是空啊 ""
yuhuofei9527 发表于 2024-7-4 15:25
传一个空给他就行了
 楼主| wwj830 发表于 2024-7-4 15:26
BoyInTheSun 发表于 2024-7-4 15:19
pycrypto,轮子,没有什么难度。
偏移量值iv吗?学名叫初始向量,随机生成即可,但不应泄露或存在规律。某 ...

是的 不算法之类的搞不懂。。
大神能帮忙弄点写一下吗,,,2天没搞好了,急着用...
 楼主| wwj830 发表于 2024-7-4 15:29
wwj830 发表于 2024-7-4 15:26
是的 不算法之类的搞不懂。。
大神能帮忙弄点写一下吗,,,2天没搞好了,急着用...

U2FsdGVkX1+Go0Z4GVGrZftuTEh/nrzrBm6Gu9S4T9x6u9OPINhm8vmG7ezeNUgpNn2PzADjZHHXB1NWWMX9q+C+BaYD++XWvfyO4d9ccwM4H7IehwMR0DQWmxx3S9ShqxOW+fWCLlB9Jo/GQAV+7b7IkehGfiIwPNr+FzxnTrgPqivf/6E0+uqJl11BRs6Uc9/9KjneT2pFxJxBOBPsWJs1qhcjRzXWfjEKa+GXTO1kovYKw1i4T/o8TeULym0sWu2xD/9gQFhANEOX9o8elLEso+SRbdfG7nM7sbBVvhU=
上面是加密后的
A1b2C3d4E5f6G7h8I9j0K!# 这个是密钥
下面是解密后的
{"address":"0x32185387A611F9C49F90f99b61e37B39c3B1E4E1","projectId":"0x307832356562396465383466363163346362343462373431343034316561666637383836393861633534633565623436313835393166663931303665353130303065"}

我用代码怎么都搞不弄。。头疼死了
 楼主| wwj830 发表于 2024-7-4 15:31
yuhuofei9527 发表于 2024-7-4 15:25
传一个空给他就行了

空的报错啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-12 16:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表