变异凯撒 分值:10
加密密文:afZ_r9VYfScOeO_UL^RWUc
格式:flag{ }
解:
由题目中得知,这个密文密文的加密与凯撒解密有关,
于是我将密文放入解密工具
并没有看到有合适的结果,而我们知道凯撒加密的原理为:
凯撒加密法,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
上面的结果中没有答案,这时我们再去看题目,变异的凯撒,凯撒加密与移动位数相关,那么变异可能就变在移动上了。而密文中有“_”,这个符号在字母表中是没有的,所以想到,可能是ASCII码值得变动。
看下面的表,
密文:afZ_r9VYfScOeO_UL^RWUc,看看能否与ctf 或者flag 对应上,
此时发现 a:97 f:102 Z:106
_:95
而 c:99 t:116 f:102 {:123
f:102 l:108 a:97 g:103
a→f: 移动了5 f→l:移动了6, 后面依次移动了7、8。此时按照这种移动规律,去写代码
#!/usr/bin/env python # coding:utf-8 def b_kaisa(mstr): j = 5 i = 0 lmstr =
[] for i in range(len(mstr)): m = ord(mstr[i]) # 将密文的第i个字母变为其ascii码值 m = m + j
# ascii值+j lmstr.append(m) # 将递进后的ascii值存入列表lmstr[] i = i+1 j = j+1 return
lmstr if __name__ == '__main__': m_str = 'afZ_r9VYfScOeO_UL^RWUc' # 密文 lstr =
[] lstr = b_kaisa(m_str) print lstr
运行结果为:
将结果放入Ascii转换器得到
输入答案,通过!
注:小白一枚~~~~~
热门工具 换一换