如何在Python中解密给定的加密.txt文件?

2024-05-17 09:02:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我给出了一个使用Python加密的.txt文件。这是用于加密的代码

 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()

这是secret1.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 xrxvu1z 1r1x$vr&1tz(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>wzv}u1!w1&yr&1)r$?1hv1yr(v1t!~v1&!1uvuztr&v1r1"!$&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&yr&1&yr&1 r&z! 1~zxy&1}z(v?1Z&1z%1r}&!xv&yv$1wz&&z x1r u1"$!"v$1&yr&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=1yr(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)yr&1)v1%r+1yv$v=1s'&1z&1tr 1 v(v$1w!$xv&1)yr&1&yv+1uzu1yv$v?1Z&1z%1w!$1'%1&yv1}z(z x=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 !s}+1ru(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&yr&1w$!~1&yv%v1y! !$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(!&z! 1>>1&yr&1)v1yv$v1yzxy}+1$v%!}(v1&yr&1&yv%v1uvru1%yr}}1 !&1yr(v1uzvu1z 1(rz 1>>1&yr&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%yr}}1 !&1"v$z%y1w$!~1&yv1vr$&y?

所以根据这些信息。我如何解密“secret1.txt”文件,以便找出明文是什么

提前谢谢


Tags: txtfile1w1file2vrv1x1yr
1条回答
网友
1楼 · 发布于 2024-05-17 09:02:44

对加密程序进行反向工程

当角色的ord()为<;32,它不会改变

如果是>;=32和<;=126,他们加了17,所以减去17。并对最终逻辑应用相同的逻辑

此外,您还可以通过加密程序运行解密结果以验证您的解决方案(它应该与secret1.txt相同)

相关问题 更多 >