推荐学习书目
› 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 · Jun 22, 2020 · 2870 views
    This topic created in 2287 days ago, the information mentioned may be changed or developed.
    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 replies  •  2020-06-22 23:06:23 +08:00
    akumazero
        1
    akumazero  
    OP
       Jun 22, 2020
    求助 求助
    crystom
        4
    crystom  
       Jun 22, 2020
    我用谷歌一搜,搜到你在另一个论坛发的帖子了
    akumazero
        5
    akumazero  
    OP
       Jun 22, 2020
    这个我试了不行不知道为啥
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2585 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:42 · PVG 13:42 · LAX 22:42 · JFK 01:42
    ♥ Do have faith in what you're doing.