来一发!!!
正过程:
先翻转字符串 = a
for(b=0;b<len(a);b++)
{
c = substr(a,b,1);//字符串a从b开始截取,长度为1
d = ord(c)+1;
c = chr(d);
//字符串中的每个字符取出来向后移动一位
end = end.c
}
str_rot13(strrev(base64_encode(end)));
最后一步,base64加密end,在翻转字符串,在rot13 end
解密:
第一步: rot13解密,翻转字符串,base64解密
第二步: 把字符串中的每个都取出,向前移动一位
第三步:翻转字符串
import base64codingstr = "iEJqak3pjIaZ0NzLiITLwWTqzqGAtW2oyOTq1A3pzqas"def strrot13(string): getstr = "" for i in range(0,len(string)): str1 = string[i:i+1] str1 = ord(str1) if(65<=str1<=90):#65+26-1 if(65<=str1<=77):#65+13-1 str1 = str1 + 13 else: str1 = str1 - 13 elif(97<=str1<=122): if(97<=str1<=109): str1 = str1 + 13 else: str1 = str1 - 13 getstr += chr(str1) return getstrdef strrev(string): getstr = "" benum = len(string) while benum > 0: getstr += string[benum-1:benum] benum -= 1 return getstrdef re(string): getstr = "" for i in range(0,len(string)): str1 = string[i:i + 1] str1 = ord(str1) - 1 getstr += chr(str1) return getstrcodingstr = strrev(strrot13(codingstr))codingstr = base64.b64decode(codingstr)codingstr = re(codingstr)print(strrev(codingstr))反转字符串快捷操作
a="abc"
a[::-1]="cba"
真是学到了
上之后才发现密文中有数字,查了一下rot13是对数字不进行任何操作的
但其实直接写也没有影响....
算法很leji,欢迎大佬指正
免责声明:文章源自网络,版权归原作者所有,如有侵犯联系删除。