【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-这个厉害了
  6k0GrpdiCjYb 2023年11月02日 57 0

(文章目录)

前言

把明文转换为16进制编码的步骤如下:

  1. 将明文中的每个字符转换为其对应的ASCII码。
  2. 将ASCII码转换为16进制编码。

例如,如果明文为"Hello",则转换为16进制编码后为"48656C6C6F"。

将16进制编码转换为10进制数的步骤如下:

  1. 将16进制编码每两个字母分组。
  2. 将每个字母转换为其对应的10进制数。
  3. 将每组字母转换后的10进制数相加,得到最终的10进制数。

例如,对于转换后的16进制编码"48656C6C6F",将其每两个字母分组为"48","65","6C","6C","6F"。将每组字母转换为10进制数得到"72","101","108","108","111"。将这些数相加,得到最终的10进制数为"500"。

一、这个厉害了

1.打开题目

在这里插入图片描述

2.解题

题目给了一个py脚本和一个密文文件,py脚本将明文转换为密文,现在需要将密文文件中的密文解密得到明文。

flag = '[censored]'
hflag = flag.encode('hex')
iflag = int(hflag[2:], 16)

def FAN(n, m):
    i = 0
    z = []
    s = 0
    while n > 0:
        if n % 2 != 0:
            z.append(2 - (n % 4))
        else:
            z.append(0)
        n = (n - z[i])/2
        i = i + 1
    z = z[::-1]
    l = len(z)
    for i in range(0, l):
        s += z[i] * m ** (l - 1 - i)
    return s

i = 0
r = ''
while i < len(str(iflag)):
    d = str(iflag)[i:i+2]
    nf = FAN(int(d), 3)
    r += str(nf)
    i += 2
print r 

很明显加密流程为将明文转换为16进制编码,在转化为10进制数,将每两位数字构成的数进行FAN函数运算,再拼接起来得到密文。

因此解密流程为:将0~99利用FAN函数求得加密值,建立加密值–>原数的字典,在明文中查字典拼接得到10进制数,转化为16进制数,再求取字符串。代码如下:

xxx={} #字典
for kk in range(0,100):
    xxx[FAN(kk, 3)]=kk
ff=open('enc.txt','r')
dd=ff.read()
print dd
str1=''
jj=0
while jj<len(dd):
    if xxx.has_key(int(dd[jj:jj+4])):
        str1+='%d'%(xxx[int(dd[jj:jj+4])])
        jj+=4
    elif xxx.has_key(int(dd[jj:jj+3])):
        str1+='%02d'%(xxx[int(dd[jj:jj+3])])
        jj+=3
    elif xxx.has_key(int(dd[jj:jj+2])):
        str1+='%02d'%(xxx[int(dd[jj:jj+2])])
        jj+=2
    elif xxx.has_key(int(dd[jj:jj+1])):
        str1+='%02d'%(xxx[int(dd[jj:jj+1])])
        jj+=1
print str1  
str2='%x'%(int(str1))
print str2.decode('hex')

得到明文为SIS{a9ab115c488a311896dac4e8bc20a6d7},根据算法还缺一位字母,加上题目来自ASIS(一个伊朗的CTF比赛),故key应该为ASIS{a9ab115c488a311896dac4e8bc20a6d7}。

不过该题存储的答案是SIS{a9ab115c488a311896dac4e8bc20a6d7}

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  5NWiQFAVeqgX   2024年05月17日   31   0   0 网络安全
  pTtIhLb24H2d   2024年05月17日   34   0   0 网络安全
  5NWiQFAVeqgX   2024年05月17日   38   0   0 网络安全
  OKgNPeBk991j   2024年05月18日   47   0   0 网络安全
  rKgO6TN7xbYO   2024年05月17日   37   0   0 网络安全
  5NWiQFAVeqgX   2024年05月17日   50   0   0 网络安全
  5NWiQFAVeqgX   2024年05月17日   35   0   0 网络安全
  YOkriIV1Am1d   2024年05月20日   39   0   0 网络安全
  owpmXY9hzjPv   2024年05月20日   36   0   0 网络安全
  owpmXY9hzjPv   2024年05月20日   37   0   0 网络安全
  owpmXY9hzjPv   2024年05月20日   34   0   0 网络安全
6k0GrpdiCjYb