Как расшифровать данный зашифрованный TXT-файл в Python? - PullRequest
0 голосов
/ 24 февраля 2020

Я дал Зашифрованный TXT-файл, который был зашифрован с использованием Python. Вот код, который используется для шифрования.

 file1 = open("plain1.txt","r")
file2 = open("secret1.txt","a")
#print file1.read()
for l in file1.readlines():
  for w in l:
    if ord(w) >= 32 and ord(w) <= 126: 
      t_ord = ord(w) + 17
      if t_ord > 126:
        t_ord = t_ord - 126 + 31
      file2.write(chr(t_ord))
    else:
      file2.write(w)
file1.close()

Вот секрет 1.txt

W! '$ 1% t! $ V1r u1% v (v 1 + vr $% 1rx! 1!' $ 1wr & yv $% 1s $! 'Xy & 1w! $ & Y1! 1 & yz% 1t! & Z v & = 1r1 v) 1 r & z! = 1t! tvz (vu1z 1] zsv $ & + = 1r u1uvuztr & vu1 &! 1 & yv1 "$!"!% z & z! 1 & yr & 1r}} 1 ~ v 1r $ v1t $ vr & vu1v # 'r}? _!) 1) v1r $ v1v xrxvuz1 (z} 1) r $ = 1 & v% & z x1) yv & yv $ 1 & yr & 1 r & z! = 1! $ 1r +1 r & z! 1%! 1t! tvz (vu1r u1%! 1uvuztr & vu = 1tr 1}! x1v u '$ v? 1hv1r $ v1 ~ v & 1! 1r1x $ vr & 1sr &&} v> wvv} u1! w1 & yr & 1) r $? 1hv1yr (v1t! vuvvv) & z! 1! w1 & yr & 1wzv} u = 1r% 1r1wz r} 1 $ v% & z x1 "} rtv1w! $ 1 & y!% v1) y! 1yv $ v1xr (v1 & yvz $ 1} z (v% 1 & y & & 1 & y & 1 & z & 1} zxy (v? 1Z & 1z% 1r} &! xv & yv $ 1wz && z x1r u1 "$!" v $ 1 & год & 1) v1% y! '} u1u! 1 & yz%? S' & = 1z 1r1} r $ xv $ 1% v% v = 1 ) v1tr 1! & 1uvuztr & v1 >> 1) v1tr 1! & 1t! % vt $ r & v1 >> 1) v1tr 1! & 1yr}}!) 1 >> 1 & yz% 1x $! ' u? 1eyv1s $ r (v1 ~ v = 1} z (z x1r u1uvru = 1) y! 1% & $ 'xx} vu1yv $ v = 1 год (v1t!% vt $ r & vu1z & = 1wr $ 1rs! (v1!') $ 1 "!! $ 1"!) V $ 1 &! 1ruu1! $ 1uv & $ rt &? 1eyv1)! $} U1) z}} 1} z &&} v1! & V = 1! $ 1}! x1 $ v ~ v ~ sv $ 1) год и 1) v1% r + 1yv $ v = 1s & 1z & 1tr 1 v (v $ 1w! $ xv & 1) год & 1 & yv + 1uzu1yv $ v? 1Z & 1z% 1w! $ 1 '% 1 & yv1} z (zx = 1 $ r & yv $ = 1 &! 1sv1uvuztr & vu1yv $ v1 &! 1 & yv1 'wz z% yvu1)! $ | 1) yzty1 & yv + 1) y! 1w!' Xy & 1yv $ v1yr (v1 & y '% 1wr $ 1%! 1!}! (r tvu? 1Z & 1z% 1 $ r & yv $ 1w! $ 1 '% 1 &! 1sv1yv $ v1uvuztr & vu1 &! 1 & yv1x $ vr & 1 & r% | 1 $ v ~ rz z x1svw! $ v1'% 1 >> 1 & y & 1w $ v1 yy & 1w! vyy $ vu1uvru1) v1 & r | v1z t $ vr% vu1uv (! & z! 1 &! 1 & yr & 1tr '% v1w! $ 1) yzty1 & yv + 1xr (v1 & yv1} r% & 1w'}} 1 ~ vr% '$ v1! w1uv (! >> 1 & yr & 1) v1yv $ v1yzxy} + 1 $ v%!} (V1 & yr & 1 & yv% v1uvru1% yr}} 1! & 1yr (v1uzvu1z 1 (rz 1 >> 1 & y & 1 & yz% 1 r & z! = 1 'uv $ 1X! U = 1% yr}} 1yr (v1r1 v) 1sz $ & y1! w1w $ vvu! ~ 1 >> 1r u1 & yr & 1x! (v $ ~ v & 1! w1 & yv1 "v!"} v = 1s + 1 & yv1 "v!"} v = 1w! $ 1 & yv1 "v!"} V = 1% год}} 1! & 1 "v $ z% y1w $! ~ 1 & yv1vr $ & y?

Итак, основываясь на этой информации. Как я могу расшифровать Файл «secret1.txt», чтобы я мог выяснить, что такое plain1.txt?

Заранее спасибо.

1 Ответ

0 голосов
/ 25 февраля 2020

Обратный инжиниринг программы шифрования.

Когда значение ord () символа <32, оно не изменяется. </p>

Если это> = 32 и <= 126, они добавили 17 к нему, так что просто вычтите 17. И примените тот же тип логики c для окончательных логик c. </p> * 1006. * Кроме того, вы можете запустить расшифрованный результат обратно через программу шифрования, чтобы проверить ваше решение (оно должно выглядеть так же, как secret1.txt)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...