来一发!!!
正过程:
先翻转字符串 = 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 base64
codingstr = "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 getstr
def strrev(string):
getstr = ""
benum = len(string)
while benum > 0:
getstr += string[benum-1:benum]
benum -= 1
return getstr
def re(string):
getstr = ""
for i in range(0,len(string)):
str1 = string[i:i + 1]
str1 = ord(str1) - 1
getstr += chr(str1)
return getstr
codingstr = strrev(strrot13(codingstr))
codingstr = base64.b64decode(codingstr)
codingstr = re(codingstr)
print(strrev(codingstr))
反转字符串快捷操作
a="abc"
a[::-1]="cba"
真是学到了
上之后才发现密文中有数字,查了一下rot13是对数字不进行任何操作的
但其实直接写也没有影响....
算法很leji,欢迎大佬指正