WhaleCTF-Decode8(凯撒解密脚本)
凯撒和某某加密,“aZZg/x\ZbavpZiEZp+n)o+“,格式flag{xxxx}
下面是一个凯撒移位脚本:
# 实现33-126ASCII能打印的字符循环平移 # 和通常凯撒加密不同注意 def change(c, i): num = ord(c) if (num >= 33 and num <= 126): num = 33 + (num + i - 33) % (94) # 126-33=93 return chr(num) def kaisa_jiAmi(string, i): string_new = '' for s in string: string_new += change(s, i) print(string_new) return string_new # 本题有种暴力解密感觉 def kaisa_jiEmi(string): for i in range(0, 94): print('第' + str(i + 1) + '种可能:', end=' ') # 区别在于 string 是该对象原本就是字符串类型, 而 str()则是将该对象转换成字符串类型。 kaisa_jiAmi(string, i) # 你要知道input输入的数据类型都是string def main(): print('请输入操作,注意不是平常26种:') choice = input('1:恺撒加密,2:凯撒穷举解密.请输入1或2:') if choice == '1': string = input('请输入需要加密字符串: ') num = int(input('请输入需要加密的KEY: ')) kaisa_jiAmi(string, num) elif choice == '2': string = input('请输入需要解密字符串: ') kaisa_jiEmi(string) else: print('输入错误,请重试') main() if __name__ == '__main__': main()
运行后不难看出f__l4}a_gf{u_nJ_u0s.t0比较可疑。
普通的栅栏密码解密工具解不出来的,前两个三个三个分,后面是两个两个分,得到flag