CTF 实验吧 变异凯撒 writeup

变异凯撒          分值:10

加密密文:afZ_r9VYfScOeO_UL^RWUc
格式:flag{ }

解:

由题目中得知,这个密文密文的加密与凯撒解密有关,

于是我将密文放入解密工具

CTF 实验吧 变异凯撒 writeup_第1张图片CTF 实验吧 变异凯撒 writeup_第2张图片

并没有看到有合适的结果,而我们知道凯撒加密的原理为:

凯撒加密法,或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。

上面的结果中没有答案,这时我们再去看题目,变异的凯撒,凯撒加密与移动位数相关,那么变异可能就变在移动上了。而密文中有“_”,这个符号在字母表中是没有的,所以想到,可能是ASCII码值得变动。

看下面的表,

CTF 实验吧 变异凯撒 writeup_第3张图片

密文: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转换器得到

CTF 实验吧 变异凯撒 writeup_第4张图片

输入答案,通过!

注:小白一枚~~~~~

你可能感兴趣的:(CTF)