python实现字母表对半后对应移位加密的解密方法

我们可能会遇到一种情况,就是发现一段代码使用了将字母表对半后,上半段和下半段对应的字母进行调换,这样起到对代码的加密效果,而接下来就是如何使用python写关于这种情况的解密方法。

  1. 首先可以把代码放在一个文本文件中。
  2. 然后读取每一行的每一个字符,如果是英文字符,分大小写先得到它原本在字母表中的序数,然后进行加减移位,再得到对应的字母。
  3. 把这些新的字母拼起来,输出新的文本。

代码如下:

<?cuc
	reebe_ercbegvat(0);
	rpub "Pbatenghyngvbaf ba lbhe neeviny ng gur ynfg yriry <oe><oe>";
	rpub "Lbh ner bayl bar fgrc fubeg bs lbhe svany fhpprff <oe><oe>";
	rpub "Ohg vg frrzf n yvggyr qvssvphyg :)<oe><oe>";
  pynff Luxgdy{ 
    cebgrpgrq $svyr='onx.cuc';
    shapgvba __qrfgehpg(){ 
      vs(!rzcgl($guvf->svyr)) {
       vs(fgepue($guvf-> svyr,"\\")===snyfr &&  fgepue($guvf->svyr, '/')===snyfr)
          fubj_fbhepr(qveanzr (__SVYR__).'/'.$guvf ->svyr);
       ryfr      qvr('Jebat svyranzr.');
      }}  
    shapgvba __jnxrhc(){ $guvf-> svyr='onx.cuc'; } 
    choyvp shapgvba __gbFgevat(){erghea '' ;}}     
    vs (!vffrg($_TRG['uhfg'])){ fubj_fbhepr('onx.cuc'); } 
    ryfr{ 
       $svyr=onfr64_qrpbqr( $_TRG['uhfg']); 
       rpub hafrevnyvmr($svyr ); } 
 ?>

发现这是一段被加密后的php代码,将她保存在1.txt文本文件中,写解密脚本如下:

def main():	
	s=open("1.txt",'r')
	for line in s.readlines():
		line=line.strip(' ')
		result=shu(line)
		print(result)
def shu(line):
	temp=''	
	z="abcdefghijklmnopqrstuvwxyz"
	zz="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	for i in range(0,len(line)):
		if line[i] in z:
			m=ord(line[i])-96
			if m<=13:
				temp+=z[m+12]
			else:
				temp+=z[m-14]
		elif line[i] in zz:
			m=ord(line[i])-64
			if m<=13:
				temp+=zz[m+12]
			else:
				temp+=zz[m-14]

		elif line[i]=='\n':
			temp+='\n'
		else:
			temp+=line[i]
	return temp
if __name__ == '__main__':
	main()

所以,最终解密后的代码如下:

<?php

        error_reporting(0);

        echo "Congratulations on your arrival at the last level <br><br>";

        echo "You are only one step short of your final success <br><br>";

        echo "But it seems a little difficult :)<br><br>";

class Yhktql{

protected $file='bak.php';

function __destruct(){

if(!empty($this->file)) {

if(strchr($this-> file,"\\")===false &&  strchr($this->file, '/')===false)

show_source(dirname (__FILE__).'/'.$this ->file);

else      die('Wrong filename.');

}}

function __wakeup(){ $this-> file='bak.php'; }

public function __toString(){return '' ;}}

if (!isset($_GET['hust'])){ show_source('bak.php'); }

else{

$file=base64_decode( $_GET['hust']);

echo unserialize($file ); }

?>
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值