AES256 GCM декрипт

Discussion in 'Болталка' started by sn0w, 4 Mar 2020.

  1. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    тут наговнокодил декрипт пассов автосохранения для нового хрома (который 80+)
    но вот хуита вылезает:
    aesbug.png


    подчеркнуто фиолетовым. т.е. в дебаггере и нативном коде всё заебись декодится, без мусора в хвосте, а вот в утильке которую запилил на питоне заюзав (хз как называется) это:

    Code:
    from cryptography.hazmat.backends import default_backend
    from cryptography.hazmat.primitives.ciphers import (
        Cipher, algorithms, modes
    )
    
    def decrypt(cipher, ciphertext, nonce):
        cipher.mode = modes.GCM(nonce)
        decryptor = cipher.decryptor()
        return decryptor.update(ciphertext)
    
    
    #....
    cipher = Cipher(algorithms.AES(key), None, backend=default_backend())
    print( decrypt(cipher, pwdcipher, nonce))
    print('\n')
    
    
    появляется мусор в хвосте. может либа кривая эта? или есть ищо какие? нужно имеено 256 GCM
     
  2. fandor9

    fandor9 Reservists Of Antichat

    Joined:
    16 Nov 2018
    Messages:
    620
    Likes Received:
    1,053
    Reputations:
    47
    Да нет либа нормальная, но можно и по другому вызывать:
    Code:
    import os
    from cryptography.hazmat.primitives.ciphers.aead import AESGCM
    key = bytes.fromhex('CA400D8CB4055F39E4E162F0768E0092FEC229AF3198157D00BC91171C79BE5E');
    aesgcm = AESGCM(key)
    nonce = bytes.fromhex('618ED5BD6EC58B0B7D008F77');
    ciphertext = bytes.fromhex('8518550EB584234866A4A3A29A91B8285FE61F5BE0406CB0DF');
    cleartext = aesgcm.decrypt(nonce, ciphertext, None)
    print(cleartext);
    
     
    quite gray, Spinus and sn0w like this.
  3. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    о, а так заебись всё пошло. сенкс!