-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!newsreader4.netcolog
ne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.
ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.p
l!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl
.POSTED!not-for-mail
Newsgroups: pl.comp.programming
X-Mozilla-News-Host: news://news.nask.pl:119
From: Roman Tyczka <r...@h...you.spammer>
Subject: Algorytm AES
Date: Mon, 15 Feb 2021 14:28:58 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.7.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: pl-PL
Content-Transfer-Encoding: 8bit
Lines: 58
Message-ID: <602a771a$0$551$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 194.49.104.179
X-Trace: 1613395738 unt-rea-a-02.news.neostrada.pl 551 194.49.104.179:37434
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 3281
Xref: news-archive.icm.edu.pl pl.comp.programming:215368
[ ukryj nagłówki ]Witam,
Nie znam Pythona, ale się trochę go zaczynam uczyć, bo potrzebuję nim
sprawdzić poprawność szyfrowania/deszyfrowania różnymi algorytmami
biblioteki w innym języku.
Napisałem krótki program, który za pomocą dwóch implementacji algorytmu
AES szyfruje i deszyfruje łańcuch tekstowy:
import binascii
import pyaes
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
key = b'01234567012345670123456701234567'
iv = bytearray(16)
plaintext = ('Some short description with looooooooong '
'additional data like polish diacritical chars... łóżźćęół
and digits 0123456789')
encrypter = pyaes.Encrypter(pyaes.AESModeOfOperationCBC(key, iv.decode()))
ciphertext = encrypter.feed(plaintext.encode('utf_8'))
ciphertext += encrypter.feed()
print("Encrypted AES256'1:", binascii.hexlify(ciphertext).upper())
aes = pyaes.AESModeOfOperationCBC(key)
decrypter = pyaes.Decrypter(aes)
decrypt = decrypter.feed(ciphertext)
decrypt += decrypter.feed()
print('Decrypted:', decrypt.decode('utf_8'))
print()
iv = bytearray(16)
cipher = Cipher(algorithms.AES(key), modes.CBC(iv))
encryptor = cipher.encryptor()
ct = encryptor.update(plaintext.encode('utf_8')) + encryptor.finalize()
print("Encrypted AES256'2:", binascii.hexlify(ct).upper())
decryptor = cipher.decryptor()
dc = decryptor.update(ct) + decryptor.finalize()
print('Decrypted:', dc.decode('utf_8'))
Wyniki:
Encrypted AES256'1:
b'B623A479FC657E31F219287CD191075575B2FB56485D0C22E9
168A2BF2289C7165CDA67586A486E14115C754ABA158A84A8C3B
521E0DF87505D77649A8F1CB52A03D41E205849F28BCA2DE189A
9C65CDB648DBC9F7D49AF2F1704B491E9E2DE6FC357ADC8E1573
3394C3C75B45570AE77A2A6CB6CC4418A558A78313C0C16478A7
D61538B88B486BCAE89235D8FCEEB8'
Encrypted AES256'2:
b'B623A479FC657E31F219287CD191075575B2FB56485D0C22E9
168A2BF2289C7165CDA67586A486E14115C754ABA158A84A8C3B
521E0DF87505D77649A8F1CB52A03D41E205849F28BCA2DE189A
9C65CDB648DBC9F7D49AF2F1704B491E9E2DE6FC357ADC8E1573
3394C3C75B45570AE77A2A6CB6CC4418A558A78313C0C16478'
I teraz mam pytanie dlaczego szyfrogram pierwszej biblioteki jest o 16
bajtów dłuższy niż drugiej? Nie jest to initialization vector, bo ten
ustawiony jest na 16 zer. Z czego wynika i czym jest ta różnica?
Różnica jest na końcu i wygląda tak:
A7D61538B88B486BCAE89235D8FCEEB8
--
pzdr
Roman
Następne wpisy z tego wątku
- 15.02.21 16:19 Roman Tyczka
- 15.02.21 17:03 Maciej Sobczak
- 16.02.21 14:19 Roman Tyczka
- 23.02.21 10:03 Roman Tyczka
- 23.02.21 17:15 Maciej Sobczak
- 25.02.21 12:10 Roman Tyczka
- 25.02.21 16:38 Maciej Sobczak
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 2025-01-06 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-06 Do IO i innych elektrooszolomow, tu macie prawdziwe smrody
- 2025-01-06 Białystok => Full Stack .Net Engineer <=
- 2025-01-06 Kraków => Business Development Manager - Network and Network Security
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg
- 2025-01-05 Żarówka do lampy z czujnikiem ruchu
- 2025-01-05 Rozkręcają się
- 2025-01-04 pozew za naprawę sprzętu na youtube
- 2025-01-04 gasik
- 2025-01-04 13. Raport Totaliztyczny: Powszechna Deklaracja Praw Człowieka Nie Chroni Przed Wyzyskiem Ani Przed Eksploatacją