NSSCTF 简简单单的逻辑
加密的过程还是很清晰的,唯一的问题是对Python不太了解。
知识点总结
hex生成的16进制字符串带0x前缀,需要使用[2:]进行截取
zfill是将字符串填充至目标位数,位数不足的前面补零
16进制转换为10进制 int(A[i*2 : i*2+2] ,16)
10进制转字符chr(A[i])
range()函数是Python中的内置函数,用于生成一系列连续的整数,一般用于for循环体中。
ord()用来返回对应字符的ascii码
hex()用于将10进制整数转换成16进制,以字符串形式表示
str.zfill(width)根据width长度对str进行切片
写脚本
得到NSSCTF{EZEZ_RERE};
NSSCTF fakerandom
异或和随机数
知识点:
seed()函数:初始化给定的随机数种子,默认为当前系统时间。
random.seed(10) #产生种子10对应的序列。
random()函数:生成一个[0.0,1.0]之间的随机小数。
random.random() #生成一个[0.0,1.0]之间随机小数。
getrandbits(k):生成一个k比特长的随机整数
脚本如下
得到NSSCTF{FakeE_random}