trivial-实验吧

1、题目
ENC(???,T0pS3cre7key) = Bot kmws mikferuigmzf rmfrxrwqe abs perudsf! Nvm kda ut ab8bv_w4ue0_ab8v_DDU
求明文
加密算法下载

2、解题
(1)读懂加密方式,下面是相关函数注解
详解可自行百度
sys.argv 是获取运行python文件的时候命令行参数,且以list形式存储参数
key.isalnum()如果 key至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
index()函数如果包含子字符串返回开始的索引值,否则抛出异常。
ord()它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值
chr()返回值是当前整数对应的 ASCII 字符


(2)思考求解
逆着求解就好了,下面是解题脚本。
主要是穷举一下,加密后==相应密文,就找到明文了

str=‘T0pS3cre7key’
alphaL = “abcdefghijklnmopqrstuvqxyz”
alphaU = “ABCDEFGHIJKLMNOPQRSTUVQXYZ”
num = “0123456789”
keychars = num+alphaL+alphaU
ind=[]
for i in str:
ind.append(keychars.index(i))
#append() 方法用于在列表末尾添加新的对象。
print(ind)
encrypt_text=‘Bot kmws mikferuigmzf rmfrxrwqe abs perudsf! Nvm kda ut ab8bv_w4ue0_ab8v_DDU’
plain_text=’’
for j in range(0,len(encrypt_text)):
if encrypt_text[j] in num:
for i in range(0,10):
if (ind[j%12]+i)%10==(ord(encrypt_text[j])-ord(‘0’)):
plain_text=plain_text+chr(ord(‘0’)+i)
elif encrypt_text[j] in alphaL:
for i in range(0,26):
if (ind[j%12]+i)%26==(ord(encrypt_text[j])-ord(‘a’)):
plain_text=plain_text+chr(ord(‘a’)+i)
elif encrypt_text[j] in alphaU:
for i in range(0,26):
if (ind[j%12]+i)%26==(ord(encrypt_text[j])-ord(‘A’)):
plain_text=plain_text+chr(ord(‘A’)+i)
else:
plain_text=plain_text+encrypt_text[j]
print(plain_text)
在这里插入图片描述附:
1、一个rsa小题,了解rsa算法,用工具求解密钥和明文即可
查看题目
2、工具下载
工具1
提取码:35uo
工具2
提取码:39ri
3、答案:5577446633554466577768879988

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值