上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

CTF CRYPTO 密码学-1

guduadmin271月前

题目名称:enc

题目描述:

压缩包中含两个文件:一个秘钥d.dec,一个密文flag.enc

CTF CRYPTO 密码学-1,在这里插入图片描述,第1张

CTF CRYPTO 密码学-1,在这里插入图片描述,第2张

解题过程:

Step1:这题是一个解密他题目,尝试openssl去ras解密

CTF CRYPTO 密码学-1,在这里插入图片描述,第3张

工具简介

在Kali Linux系统中,openssl 是一个强大的命令行工具,用于处理SSL/TLS协议。openssl pkeyutl 是 openssl 工具集中的一个命令,用于处理私钥文件。

参数解释

openssl pkeyutl:这是执行私钥操作的命令。

-decrypt:这个选项告诉 openssl 执行解密操作。

-inkey d.dec:指定用于解密的私钥文件。这里的 d.dec 是私钥文件的名称。

-in flag.enc:指定包含加密数据的文件。这里的 flag.enc 是加密数据文件的名称。

-out 1:这个参数指定了输出文件的名称。在这里,输出文件被命名为 1。

Step2:解出来后有一串乱码,所以用Mousepad打开修改编码,再次查看

CTF CRYPTO 密码学-1,在这里插入图片描述,第4张

Mousepad简介

Mousepad 是一个简单且轻量级的文本编辑器,它通常预装在 Kali Linux 和其他基于 Debian 的 Linux 发行版中。Mousepad 旨在提供基本的文本编辑功能,没有过多的复杂性,非常适合快速编辑或查看文本文件

Step3:在Python中计算二进制字符串是否为8的倍数

CTF CRYPTO 密码学-1,在这里插入图片描述,第5张

分析

计算后得出是7的倍数,所以需要再每7位二进制数前加上0,补足8位后再转换为ASCII码

知识点补充
  • ASCII(美国标准信息交换码)是一种用于表示文本的编码系统,它为每个字符(包括字母、数字、标点符号等)分配了一个唯一的数字代码。ASCII 码表中,每个字符对应一个7位的二进制数(实际上,ASCII 码表只用到了前128个位置,所以每个字符只需要7位,但为了与后来的扩展ASCII兼容,通常使用8位表示,即一个字节)。

  • 二进制是一种数制系统,它只使用两个数字:0和1。在计算机中,所有的数据,包括文本、图像、音频等,最终都会被转换成二进制形式,因为计算机的基本存储和处理单元是二进制位(bit)。

  • ASCII和二进制的关系在于,ASCII 码表中的每个字符都是用二进制数来表示的。例如,ASCII 码表中的大写字母 ‘A’ 对应的二进制数是 01000001。这个二进制数可以被计算机直接读取和处理。

    Step4:编写一个脚本,目的是补足8位二进制,每7位前面补足0

    CTF CRYPTO 密码学-1,在这里插入图片描述,第6张

    # 补足8位二进制
    s = "11001101101100110000111001111111011011001001100111000000010001101101001100100111010010001011011001100011011100101110100100001010001111110011110011101000011111101"
    result = [chr(int("0" + s[i:i+7],2))  for i in range(0, len(s), 7)]  
    print(result)
    

    CTF CRYPTO 密码学-1,在这里插入图片描述,第7张

    # 将数组转换为字符串
    s=['f', 'l', 'a', 'g', '{', '2', '3', '@', '#', '4', 'd', 't', 'E', 'Y', 'F', 'r', 't', 'B', 'G', 's', 'g', '!', '}']
    >>> r=''.join(s)
    >>> print(r)
    

    相关资源

    链接:https://pan.baidu.com/s/1FHvPaeMjMMWfRwf0vlefUA

    提取码:200y

网友评论

搜索
最新文章
热门文章
热门标签
 
 梦见一路上不停遇到蛇  梦见自己哭了意味着什么  梦见游泳游得很快很轻松