【无标题】

1[鹤城杯 2021]easy_crypto

打开是一串社会主义核心价值观,用在线解码工具。

2 [强网拟态 2021]拟态签到题

base64解码

3[SWPUCTF 2021 新生赛]crypto8

给了一串这个东西,是uuencode编码,在线解码

UUencode编码是一种古老的编码方式,通常用于将二进制数据转换成可打印字符的形式。UUencode编码采用一种基于64个字符的编码表,将每3个字节的数据编码为4个可打印字符,以实现数据的转换和传输。
下面是一个简单的示例,展示如何对字符串"Hello, World!"进行UUencode编码:

  1.首先,将字符串转换为ASCII码表示的二进制数据:
    H: 01001000
    e: 01100101
    l: 01101100
    o: 01101111
    ,: 00101100
    空格: 00100000
    W: 01010111
    o: 01101111
    r: 01110010
    l: 01101100
    d: 01100100
    !: 00100001
    2.将这些二进制数据按照每3个字节(24位)一组进行分组:
    01001000 01100101 01101100
    01101111 00101100 00100000
    01010111 01101111 01110010
    01101100 01100100 00100001
    3.对每组数据进行编码:
    第一组:010010 000110 010101 101100 -> 转换为十进制后为:18 6 21 44
    第二组:011011 110011 110010 000000 -> 转换为十进制后为:27 51 50 0
    第三组:010101 110111 110111 001000 -> 转换为十进制后为:21 55 55 8
    第四组:011011 000110 010100 000100 -> 转换为十进制后为:27 6 20 4
    4.使用UUencode编码表将十进制数据转换为可打印字符:
    18 -> S, 6 -> F, 21 -> V, 44 -> , (逗号)
    27 -> c, 51 -> 3, 50 -> 2, 0 -> 空格
    21 -> V, 55 -> o, 55 -> o, 8 -> I
    27 -> c, 6 -> F, 20 -> T, 4 -> D
    因此,经过UUencode编码后,字符串"Hello, World!“会转换为"S3V,c3Vo IFcFTD”。这样编码后的数据可以在网络上传输或存储,需要时可以通过解码还原为原始二进制数据。

4[SWPUCTF 2021 新生赛]crypto7

使用MD5在线解密工具解密

MD5破解

目前可以说 md5 已经基本被攻破了,一般的 MD5 的碰撞都可以在如下网上获取到:

https://www.cmd5.com/

http://www.ttmd5.com/

md5解密 MD5在线解密 破解md5

5[SWPUCTF 2021 新生赛]crypto6

从给我们的信息可以看到对var进行了base64编码,再进行base32编码,再进行base16编码,然后输出flag。但我们已经知道flag,求var

只用先base16解码,base32解码,最后base64解码

最后的flag就是:NSSCTF{5e110989-dc43-1bd3-00b4-9009206158fe}

6[SWPUCTF 2021 新生赛]ez_caesar

import base64
def caesar(plaintext):
    str_list = list(plaintext)
    i = 0
    while i < len(plaintext):
        if not str_list[i].isalpha():
            str_list[i] = str_list[i]
        else:
            a = "A" if str_list[i].isupper() else "a"
            str_list[i] = chr((ord(str_list[i]) - ord(a) + 5) % 26 + ord(a) or 5)
        i = i + 1

    return ''.join(str_list)

flag = "*************************"
str = caesar(flag)
print(str)

#str="U1hYSFlLe2R0em1mYWpwc3RiaGZqeGZ3fQ=="

首先引入了base64库,最后的str="U1hYSFlLe2R0em1mYWpwc3RiaGZqeGZ3fQ=="明显是一串base64编码,对它进行解码

然后str = caesar(flag),Caesar是凯撒密码,flag通过凯撒编码得到str,那么str通过凯撒解码就可以得到flag。再通过str_list[i] = chr((ord(str_list[i]) - ord(a) + 5) % 26 + ord(a) or 5),得知偏移量是5

7[SWPUCTF 2021 新生赛]crypto10

 他建议直接秒了,看格式是凯撒密码,用在线工具解密,偏移量最终测试为13.

8[SWPUCTF 2021 新生赛]pigpig

经过观察,该题是猪圈密码,

替换表:

经过替换得到:whenthepigwanttoeat,加上nssctf即可

这是猪圈密码的设计图,相当于替换密码。

9[SWPUCTF 2021 新生赛]ez_rsa

rsa加密算法

python脚本

import gmpy2
import hashlib
 
 
p = 1325465431
q = 152317153
e = 65537
n = p*q
phi = (p-1)*(q-1)
d = gmpy2.invert(e, phi)
print(d)
# md5加密
md5_hash = hashlib.md5(b'43476042047970113').hexdigest()
print(md5_hash)

引用了gmpy2和hashlib两个库

gmpy2 是一个 Python 库,用于进行高精度整数、有理数和浮点数的计算。它是对 GNU Multiple Precision Arithmetic Library(GMP)的 Python 封装,使得在 Python 中可以方便地进行大整数、有理数和浮点数的运算。gmpy2 支持大整数的基本算术运算、比较、位操作等,同时也支持有理数的计算,包括有理数的加减乘除、比较和约分等操作。此外,gmpy2 还支持浮点数的高精度计算,包括浮点数的加减乘除、取整、取模、取幂等操作。gmpy2 库还提供了一些高级功能,例如素数检测、质因数分解、离散对数计算、椭圆曲线加密等。

n=p*q求出n

输出d=43476042047970113

输出MD5=08bb8fb628da85923e5734a75ac19ffe

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值