abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 03:22 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    dnes 03:11 | Komunita

    Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Zajímavý projekt

    ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    včera 21:00 | Zajímavý software

    ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 7
    včera 16:33 | Zajímavý software

    Strands Decider 2B je malý open-source model s 2 miliardami parametrů, určený k rychlé klasifikaci vstupů a rozhodování mezi možnostmi, generující odpovědi ve stylu modelu Jev. Strands dosáhl přibližně 72% shody s Jevem na veřejné testovací sadě JevBench (tento benchmark pochopitleně nepředstavuje přímé srovnání s modelem Jev). Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache-2.0, váhy modelu na Hugging Face.

    ❗Červivý Hřib krade❗ | Komentářů: 3
    včera 16:22 | Upozornění

    Ve věku 90 let zemřela americká softwarová inženýrka Margaret Hamiltonová, která vedla tým, jenž vyvíjel letový software pro program Apollo amerického Národního úřadu pro letectví a vesmír (NASA).

    Ladislav Hagara | Komentářů: 4
    včera 13:33 | Humor

    Japonský Google rozšířil svou kolekci DYI fyzických klávesnic Gboard o klávesnici ve tvaru běžícího pásu. Proč se mají přesouvat ruce po klávesnici, když se mohou přesouvat klávesy k ruce? Pro zájemce je návod na sestavení včetně STL souborů pro 3D tisk a firmware k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 2
    7.10. 23:22 | Bezpečnostní upozornění

    Nejnovější X.Org X server 21.1.25 a Xwayland 24.1.14 řeší 12 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    7.10. 16:33 | Nová verze

    Google Chrome 155 byl prohlášen za stabilní. Přináší podporu JPEG XL (.jxl). Opraveno bylo 247 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 1
    7.10. 16:00 | Komunita

    Konference OpenAlt 2026 hledá přednášející. Přihlásit přednášky lze do neděle 11. října. Konference proběhne o víkendu 7. a 8. listopadu na půdě Fakulty informačních technologií VUT v Brně. Témata konference jsou: Otevřený a svobodný software, IoT a Hnutí tvůrců, Vzdělávání, Bezpečnost a soukromí, Otevřená společnost, komunity a data, OpenMobility a další.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2817 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Python RSA PyCrypto -> PyCryptodome

    27.5.2022 17:28 srbt | skóre: 6
    Python RSA PyCrypto -> PyCryptodome
    Přečteno: 679×
    Rád bych přešel od neudržované knihovny PyCrypto k novější PyCryptodome. Potíž je v tom, že mi PyCryptodome nerozšifruje co PyCrypto zašifrovalo.

    Původní kód vypadal zhruba takhle:
    from Crypto.PublicKey import RSA
    
    decoded = base64.standard_b64decode(crypted_message)
    return RSA.importKey(rsa_decryption_key).decrypt(decoded)
    
    Tenhle kód teď vypíše NotImplementedError: Use module Crypto.Cipher.PKCS1_OAEP instead. Našel jsem tedy návod a změnil kód na:
    from Crypto.PublicKey import RSA
    from Crypto.Cipher import PKCS1_OAEP
    
    decoded = base64.standard_b64decode(crypted_message)
    key = RSA.importKey(rsa_decryption_key)
    decryptor = PKCS1_OAEP.new(key)
    return decryptor.decrypt(decoded)
    
    Pokud použiju PyCryptodome pro encrypt i decrypt, funguje to hezky, ale pokud zkusím nový decrypt na starý encrypt, vyhodí to ValueError: Incorrect decryption..

    Pokud by někdo náhodou tušil, kde dělám chybu, nebo věděl že to prostě nemá řešení, budu moc rád, když se o tu informaci podělí. Děkuji.
    Pro experimentátory přikládám zašifrovanou zprávu "aha":
    qSuzVLpUOH5aXN71tZbh70AXycRKbDVKAVb33f7y7WEMFzJ+80dh+YXBdNBeYzVQ0K9j7hE8qz59JbZ0F4AWYr51L6SIv40d7VUDrzQd0umtRb4ZVrpnl4mG5ta8n+7MD6R59v3SOt5UZH9oM3w225P5gYHtykbUeOo1LggqR8rPU0PriOzCozuAHakCPQxHDlDLh63IJHU3WrNGSq5yRQiq+FvdnUDlOdczgmiT6eGZnoys5p/+NrOdH6XC+pczkMS6NKj+Z23PqPBIkGy+2vVy1EOF86n+8VvL1Ew0Y86Ts/X16nutit1rdPobFQf93KNU6JucPaTYN3Mr/st+zg==
    
    a privátní klíč
    -----BEGIN RSA PRIVATE KEY-----
    MIIEogIBAAKCAQEAyfBPdPSZQiLHdUAWke3s50PuQNhMVyTUjA5pL4ilikTsSkXi
    wpqDuj6qbX8aOeLqaUNH9KnVRTAaxtM+iH2k5nl+ZK1RIknyyDyMQi7jLfFN8fts
    raFH8HxFNh2DyQ8JpusXwhH8FocuNgpHpQmQMV5KWGv5NtVE1pY7zRW7lf65zJ1j
    b6yCsBQxAwu3bJ18Jc5stQq5v+GSUn9mwpHqbbjX2YmgCSRei2Hm3VrTC9CTYSNm
    8fWfBBw5sejInlLjDNK/FJ5lTYz4XY63wbN6yBQdUBypo+iAxAinrkz8Pgklriom
    1nw5G1YkUEtLQvS98DT8d9/dJBnETCr4hVUgLwIDAQABAoIBAFhMK3IIQbsZWf16
    uGO2lQ/KNDNGYJr6D7Xt1zBhn4CGAou3Yx+UUGTvYbXfDaih/71nHd9tI0PNdOfb
    Fky4I5JjLVD4N7G2g+HqF6oYtl0wVdSpCywgiUQuElVHMoiHesDxqsHA+2keUqZu
    eEVBmTr876UaES5YsnDh3+QczJkYsVi32p6SvnW3wpX6JxE2nfHyw2V9glmtwlSF
    6s81fpUXH7g2BXNy7QXmOj2IPnll6wj8iF2L7zzyKmUG8hLpWR73RfTCXf3Q3Spb
    QtH6ZYXXTMbpHEmJlZMXTGqDcfFvg/OhliVUpB4HG9YWipU7yhClZuxFNMtlNmvL
    2PU6qAECgYEA3LegaD9bldgaRzAm+ea8glHezauf/nxVMwOZV8zef0HjXjspkdX1
    GVh7z50lGdQytTyTT662KnS3y/5kyEDZNMRZjICTv/qHXhsEKEDqn6zI2YDhq15a
    iuDpBbfS40dfuJ+83GCzDUguCOwVe0cb0b4BXsuh2A7Q6QTQinCBM0ECgYEA6jg2
    IEt/Z/rMGXEnYBVofNMSczlvhXSTIECsmpA2gvJ3F/+p+YhM2qHJ7lZXxzXcuGrR
    +QNRELX5BG93N3NitBG5nj7G3n9XsXVZ/LtFSXOoSx2B3IPSlAFPqfN5/Hm40Ke/
    rZi1gSJi6KyD2Zkp+WDNxvd2Lz6BA7iJ/EtBJ28CgYAX8ti11wIR/TPEu6XPAck8
    frOlL1UZ4NXBxkcyLqmJt1V7WQIGr+d7S42Llmp7Jfomjh8Ry0w6yRVUThMTY23t
    +swYoa7masGbZWULFRggIThd2U0jMgazAPpnw21fedQaDUMJynhDHazZDPy7tph/
    JpWxenjiH6FtVzdlfhWWwQKBgEJjTHQ68hH29IMBn7eMWeGHsmMWlJWvRUSPEF1/
    IvRa5YbX4MXp7F7MHQCBWMAOdFGRdZKvbfremYa4UYJWIlQH8iT4hkXqsmCKcsdA
    DZOURM+FvZlThAyPkpUJfjoiBlCeO6Zo8ol3xbFNtNGoqE0XMzyCR+18OfVkCTiJ
    3B3hAoGABdu7ojnq3CBTJEk/Qw/AIkeo0auzsgJIBX0DRZ+Y4U3JdH88B2QYARV4
    RMwOCnKBUtfO2V92XGGk6gnnJWcrbVDOXUdWhRZWWeGkvRX57VDx3dRc9nEw1whx
    AFh2PFzyxPOqhEdj8tvpE9pXxK8NuJueZVWW9oc6cMWpeb+vk9U=
    -----END RSA PRIVATE KEY-----
    

    Řešení dotazu:


    Odpovědi

    27.5.2022 18:36 X
    Rozbalit Rozbalit vše Re: Python RSA PyCrypto -> PyCryptodome
    Nemas OAEP padding.
    openssl base64 -d -in message.base64 -out message
    
    rsautl -decrypt -oaep -inkey key.pem -in message -out message.out
    
    140636538956544:error:040A1079:rsa routines:RSA_padding_check_PKCS1_OAEP_mgf1:oaep decoding error:rsa_oaep.c:234:
    140636538956544:error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed:rsa_eay.c:602:
    
    openssl rsautl -decrypt -raw -inkey key.pem -in message -out message.out
    cat message.out 
    aha
    
    Řešení 1× (srbt (tazatel))
    27.5.2022 21:12 X
    Rozbalit Rozbalit vše Re: Python RSA PyCrypto -> PyCryptodome
    28.5.2022 11:02 srbt | skóre: 6
    Rozbalit Rozbalit vše Re: Python RSA PyCrypto -> PyCryptodome
    Díky moc, pomohlo to. V pythonu2, ve kterém se žel ještě musím pohybovat, to vychází takhle:
    def bytes_to_int(bytes):
        result = 0
        for b in bytes:
            result = result * 256 + ord(b)
        return result
    
    def int_to_bytes(value, length):
        result = []
        for i in range(0, length):
            result.append(chr(value >> (i * 8) & 0xff))
        result.reverse()
        return b''.join(result)
    
    def decrypt_rsa(crypted_message, rsa_decryption_key):
      decoded = base64.standard_b64decode(crypted_message)
      key = RSA.importKey(rsa_decryption_key)
      ct_int = bytes_to_int(decoded)
      pt_int = pow(ct_int, key.d, key.n)
      return int_to_bytes(pt_int, key.size_in_bytes()).lstrip(b'\x00')
    

    Založit nové vlákno • Nahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.