首页 > 其他分享 >【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-这个厉害了

【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-这个厉害了

时间:2023-09-19 10:38:03浏览次数:34  
标签:10 编码 转换 进制 16 明文 Sword 职业技能 样题

(文章目录)

前言

把明文转换为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}

标签:10,编码,转换,进制,16,明文,Sword,职业技能,样题
From: https://blog.51cto.com/u_15952481/7522028

相关文章

  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-栅栏
    (文章目录)前言栅栏密码是一种简单的加密方式,是将明文按照一定方式排列,然后按照规定的方式读取密文。具体方式为:将明文中的字符按照设定的间隔排列成一个矩形,然后按照行或列的顺序读取。凯撒密码也称移位密码,是一种简单的加密方法,将明文中每个字母向后移动固定的位数,得到密文。......
  • [题解]Pa?sWorD(2023ICPC网络预选赛第一场I题)
    IPa?sWorD下次不要认为2e8可以莽过去了思路计数DP+状压(其实也可以不压)+前缀和优化(倒着写是差分)dp[i][j][k]表示第i位填j,状态为k的方案数k这一维用于状态压缩,表示数字、大写、小写是否出现前缀和优化:在处理?的时候,暴力会有62X62X8的单次复杂度,但不难发现,关于......
  • Navicat连接Mysql数据显示2059 - authentication plugin ‘caching_sha2_password‘的
    安装Mysql8.0,使用navicat登录时显示如下错误提示 错误原因:MySQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_password】,Navicat不支持这种用户登录账户加密方式。解决办法:1.打开MySQL命令行客户端 2.输入登录密码登录,查看加密方式,命令:showvariableslike'd......
  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-云影
    (文章目录)前言幂数加密是一种基于离散对数问题和群论理论的非对称加密算法。它使用一个生成元为质数p的循环群G来进行加密和解密。通常情况下,该算法的安全性建立在离散对数难题上,即找到群G中的一个元素g的k次方等于给定的元素h,其中k为未知数。该算法与RSA加密算法相比,具有更高的......
  • 完美解决MySQL ERROR:Access denied for user `root`@`localhost` (using password:YE
    windows找到mysql安装目录下的my.ini,并在最后一行添加skip-grant-tableslinux目录为etc/my.cnf在最后一行添加skip-grant-tables 1、输入mysql-uroot-p  然后回车2、输入usemysql; 3、输入updateusersetpassword=password("这里填写要设置的密码")whereuser=......
  • MGR新节点RECOVERING状态的分析与解决:caching_sha2_password验证插件的影响
    MGR新节点RECOVERING状态的分析与解决:caching_sha2_password验证插件的影响起因在GreatSQL社区上有一位用户提出了“手工构建MGR碰到的次节点一直处于recovering状态”,经过排查后,发现了是因为新密码验证插件caching_sha2_password导致的从节点一直无法连接主节点,帖子地址:(https:/......
  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-应该不难吧
    (文章目录)前言1.凯撒密码凯撒密码也称移位密码,是一种简单的加密方法,将明文中每个字母向后移动固定的位数,得到密文。例如,向后移动3位,则明文的A变成D,B变成E,C变成F,以此类推。凯撒密码和栅栏密码都是古典密码中常用的技术。凯撒密码是字母替换密码中最简单的一种,也是最为简单的一......
  • John:No password hashes left to crack (see FAQ)
    使用john--wordlist=/usr/share/wordlists/rockyou.txt文件名出现:Usingdefaultinputencoding:UTF-8Loaded1passwordhash(netntlmv2,NTLMv2C/R[MD4HMAC-MD532/64])Nopasswordhasheslefttocrack(seeFAQ)说明该文件已经被破解过,结果存放在john.pot中......
  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-疑惑的汉字
    (文章目录)前言当铺密码通常使用汉字来隐藏信息,专门用来加密数字,不需要密钥,明文信息包含在加密后的密文中。较常见的当铺密码有两种,一种是将数字映射到对应笔画的汉字,另外一种是利用汉字的字形特征,当前汉字有多少笔画出头就转化成数字几。一、疑惑的汉字1.打开题目2.解题......
  • 致远 resetPassword 任意密码重置
    一级sdasd一级撒打算打算的二级阿斯顿撒的撒打算大三级撒打算三级收纳斤斤计较斤斤计较四级四十几岁就死手机死机死机啊大叔......