特点:
用两种“符号”来表示字符:点(.)和划(-)
通过写python脚本来解决:
ASCLL = input("Enter the string:")
L = ASCLL.split()
ascll ={'01': 'A','1000': 'B','1010': 'C','100':'D','0':'E','0010':'F','110': 'G','0000': 'H','00': 'I','0111':'J','101': 'K','0100': 'L','11': 'M','10': 'N','111': 'O','0110': 'P','1101': 'Q','010': 'R','000': 'S','1': 'T','001': 'U','0001': 'V','011': 'W','1001': 'X','1011': 'Y','1100': 'Z','01111': '1','00111': '2','00011': '3','00001': '4','00000': '5','10000': '6','11000': '7','11100': '8','11110': '9','11111': '0','001100': '?','10010': '/','101101': '()','100001': '-','010101': '.','110011':',','011010':'@','111000':':','101010':':','10001':'=','011110':"'",'101011':'!','001101':'_','010010':'"','10110':'(','1111011':'{','1111101':'}'
}
for item in L:
print(ascll[item],end='')
所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)
恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ ;
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC。
直接用工具解密就行。
Ook!的变形题目:
学会观察题目特点,快速突破。
只有八种指令
指令输出的字符是根据ASCII表.
得到类似这样的字符串:++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>++.>+.+++++++…+++.<<++.>+++++++++++++++.>.+++.------.--------.<<+.<.
用解密工具解密即可。
特点:Base64字符表由a-z,A-Z,0-9,/,+构成,编码后末尾可能有=号
这个题就是恺撒密码与base64编码的混合加密,由字符串末尾的AA可以考虑是否为base64中的 ==。由Ascll知‘A’与‘=’相差4个位,写一个python脚本将所有字符都偏移4位:
a = 'e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA'
i = 0
flag = ''
while i < len(a):
num = ord(a[i])-4
flag += chr(num)
i +=1
print(flag)
得到如下结果:
a2V5ezY4NzQzMDAwNjUwMTczMjMwZTRhNThlZTE1M2M2OGU4fQ==
用base64解密工具进行解密:
得到Flag为:key{68743000650173230e4a58ee153c68e8}