V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
akumazero
V2EX  ›  Python

Python AES-256 & CBC 解密求助

  •  
  •   akumazero · 2020-06-22 21:00:33 +08:00 · 2258 次点击
    这是一个创建于 1622 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.将十六进制密文转换为二进制密文。
    2.按照 密文结构 数据格式中所述拆分字段,获取 随机加密盐 (encryptionSalt)、 随机 HMAC 盐 (HMACSalt)、 初始化向量 (IV)、CBC 模式密文 (ciphertext)。
    3.使用 PBKDF2 算法生成 加密密钥 (cipherKey)。将字符串格式的 密文(电渠分配) 和 随机加密盐 (encryptionSalt)使用 SHA­1 PRF 算法进行 10000 次迭 代,得到 加密密钥 (cipherKey)。长度为 32 字节。
    4.使用 PBKDF2 算法生成 HMAC 密钥 (hmacKey )。将字符串格式的 密文(电渠分配) 和 随机 HMAC 盐 (HMACSalt)使用 SHA­1 PRF 算法进行 10000 次迭 代,得到 HMAC 密钥 (hmacKey )。长度为 32 个字节。
    5.使用 加密密钥 (cipherKey)和 HMAC 密钥 (hmacKey ),以及 初始化向量 (IV),用 AES­256 和 CBC 模式进行解密。得到 原文 。

    哪位大神知道如何用 Python3 解密这种步骤的密文
    有个抽象语言的解密步骤根本看不懂

    def Decrypt(Password, Message) = (Version,Options,EncryptionSalt,HMACSalt,IV,Ciphertext,HMAC) = Split(Message) EncryptionKey = PKBDF2(EncryptionSalt, 32 length, 10k iterations, Password) HMACKey = PKBDF2(HMACSalt, 32 length, 10k iterations, password)
    Header = 3 || 1 || EncryptionSalt || HMACSalt || IV
    Plaintext = AES256Decrypt(Ciphertext, ModeCBC, IV, EncryptionKey) ComputedHMAC = HMAC(Header || Ciphertext, HMACKey, SHA-256)
    if ConsistentTimeEqual(ComputedHMAC, HMAC) return Plaintext else return Error


    跪谢
    5 条回复    2020-06-22 23:06:23 +08:00
    akumazero
        1
    akumazero  
    OP
       2020-06-22 21:34:26 +08:00
    求助 求助
    crystom
        2
    crystom  
       2020-06-22 22:57:54 +08:00
    crystom
        4
    crystom  
       2020-06-22 22:59:48 +08:00
    我用谷歌一搜,搜到你在另一个论坛发的帖子了
    akumazero
        5
    akumazero  
    OP
       2020-06-22 23:06:23 +08:00
    这个我试了不行不知道为啥
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1634 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 112ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.