题目描述:你和小鱼终于走到了最后的一个谜题所在的地方,上面写着一段话“亲爱的朋友, 很开心你对网络安全有这么大的兴趣,希望你一直坚持下去,不要放弃 ,学到一些知识, 走进广阔的安全大世界”,你和小鱼接过谜题,开始了耐心细致的解答。flag为cyberpeace{你解答出的八位大写字母}
提示:以下是本篇文章正文内容,下面案例可供参考
题目链接:https://adworld.xctf.org.cn/task/answer?type=crypto&number=5&grade=0&id=5109&page=1
下载附件发现字符串:8842101220480224404014224202480122
python脚本解密
a="8842101220480224404014224202480122" a=a.split("0") flag='' for i in range(0,len(a)): str = a[i] list=[] sum=0 for j in str: list.append(j) length = len(list) for k in range(0,length): sum+=int(list[k]) flag+=chr(sum+64) print(flag)
flag为:cyberpeace{WELLDONE}
二进制幂数加密法就是应用这个原理,由于英文字母只有26个字母,由公式可知,只要2的0、1、2、3、4、5次幂就可以表示31个单元。通过用二进制幂数表示字母序号数来加密。例如
明文: d o n o t p u l l a l l y o u r e g g s i n o n e b a s k e t
字母序号:4 15 14 15 20 16 21 12 12 1 12 12 25 15 21 18 5 7 7 19 9 14 15 14 5 2 1 19 11 5 20
由于4=2^2 所以D加密过之后是2;15=20+21+22+23所以O加密后是0123。同理得到上述明文的加密后的密文
密文:2 0123/123 0123 24/4 024 23 23/0 23 23/034 0123 024 14/02 012 012 014/03 123 /0123 123 02/1 0 014 013 02 24
其中空格表示字母的间隔,/表示单词的间隔。