Puncte:0

Cum pot decoda un cifr XOR cu o cheie șir pe care o cunosc?

drapel cn

Am un text care a fost XORed cu cheia „77U” (sunt sigur de acest lucru, deoarece este un fișier creat de un cod pe care îl am, așa că am văzut că fiecare intrare primește XORed de 77U.

Cu toate acestea, niciunul dintre decriptoarele online pe care le-am încercat nu-mi oferă rezultate valoroase (eroare sau ceva galimat), unii nu au opțiunea de a pune un șir ca cheie, așa că am încercat să-l convertesc în ASCII, dar încă o fac. nu obtin rezultate bune.

În scopuri de încercare, aceasta face parte din fișierul pe care vreau să-l decriptez:

D>9,?9m=(#)$#*Gb|ub}mw|zwm

Unele personaje sunt modificate de site, așa că iată o captură de ecran:

introduceți descrierea imaginii aici

Orice ajutor ar fi apreciat!

drapel ck
La aceasta se face referire în [o meta întrebare](https://meta.stackexchange.com/questions/376440/broken-feed-for-the-cryptography-site).
drapel ck
Partea listată a fișierului ar trebui să fie caractere imprimabile valide sau este în esență date binare? Sau [UTF-16](https://en.wikipedia.org/wiki/UTF-16) unde este așteptat UTF-8?
Puncte:0
drapel cn
vnd

Bun venit unno!

Puteți utiliza Python pentru a defini funcția de decriptare:

def decriptare (criptat: octeți, cheie: octeți):
    rezultat = []
    
    pentru i în interval (len (criptat)):
        rezultat.append(criptat[i] ^ cheie[i % len(cheie)])

    octeți returnați (rezultat)

În acest caz, cred că textul a fost criptat cu un singur caracter zecimal cod ASCII 77 (litera M):

% python3 -i xor.py
>>> criptat = b"D>9,?9m=(#)$#*Gb|ub}mw|zwm"
>>> cheie = octeți([77, ])
>>> decriptare (criptat, cheie)
b'\tstart în așteptare\n/18/0 :17: '

Alte decodoare online ar trebui să funcționeze de asemenea odată ce specificați „M” (sau 0x4D în reprezentare hexazecimală) ca cheie.

unno avatar
drapel cn
Ce zici de U? De ce ai luat doar 77 în loc de 77U?
unno avatar
drapel cn
Mai mult, când am lipit cele 3 linii din captura de ecran încărcată, am primit „"Eroare de sintaxă: nu se pot amesteca octeți și literale nonbytes""
unno avatar
drapel cn
pentru referință, aici este fișierul complet: https://pastebin.com/baFm7EqC
drapel cn
vnd
Probabil obțineți SyntaxError deoarece textul are ghilimele înăuntru și îl lipiți fără a scăpa. Mai întâi trebuie să scăpați de el, să încărcați din fișier sau să utilizați ghilimele triple ca acesta: >>> b"""textul " este " aici"""
drapel cn
vnd
În ceea ce privește U, adesea înseamnă Unicode. Cât despre valori
unno avatar
drapel cn
orice idee cum îl pot încărca în întregime din fișier, deoarece întâmpin probleme la lipire, deoarece este foarte mare și primesc „Textul conține caractere de control, care ar putea permite conținutului lipit să execute comenzi arbitrare. Pentru a confirma și a lipi, puteți folosi â§ââ."
unno avatar
drapel cn
deci ar putea distruge unele părți.
drapel cn
vnd
Încercați: >>> criptat = open(„fișier.txt”, „rb”).read()
unno avatar
drapel cn
Să [continuăm această discuție în chat](https://chat.stackexchange.com/rooms/134293/discussion-between-unno-and-vnd).
unno avatar
drapel cn
multumesc mult, asta functioneaza!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.