攻防世界 crypto入门WP
前言
下学期要求密码和Re,现在这俩几乎是空白,趁着暑假的功夫,最近也能闲下来,就学一学crypto,其实真正接触发现挺有意思的,各种密码的加密千奇百怪,层出不穷,也是需要慢慢积累经验,花了一天时间把攻防世界的密码入门全做了,这里简单说一下自己做的时候的思路,顺便练习python…python实在没学好,自己太辣鸡了。。。一些特别基础的就带过来,就写一些自己还没那么熟悉的
正文
混合编码
JiM3NjsmIzEyMjsmIzY5OyYjMTIwOyYjNzk7JiM4MzsmIzU2OyYjMTIwOyYjNzc7JiM2ODsmIzY5OyYjMTE4OyYjNzc7JiM4NDsmIzY1OyYjNTI7JiM3NjsmIzEyMjsmIzEwNzsmIzUzOyYjNzY7JiMxMjI7JiM2OTsmIzEyMDsmIzc3OyYjODM7JiM1NjsmIzEyMDsmIzc3OyYjNjg7JiMxMDc7JiMxMTg7JiM3NzsmIzg0OyYjNjU7JiMxMjA7JiM3NjsmIzEyMjsmIzY5OyYjMTIwOyYjNzg7JiMxMDU7JiM1NjsmIzEyMDsmIzc3OyYjODQ7JiM2OTsmIzExODsmIzc5OyYjODQ7JiM5OTsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzUwOyYjNzY7JiMxMjI7JiM2OTsmIzEyMDsmIzc4OyYjMTA1OyYjNTY7JiM1MzsmIzc4OyYjMTIxOyYjNTY7JiM1MzsmIzc5OyYjODM7JiM1NjsmIzEyMDsmIzc3OyYjNjg7JiM5OTsmIzExODsmIzc5OyYjODQ7JiM5OTsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzExOTsmIzc2OyYjMTIyOyYjNjk7JiMxMTk7JiM3NzsmIzY3OyYjNTY7JiMxMjA7JiM3NzsmIzY4OyYjNjU7JiMxMTg7JiM3NzsmIzg0OyYjNjU7JiMxMjA7JiM3NjsmIzEyMjsmIzY5OyYjMTE5OyYjNzc7JiMxMDU7JiM1NjsmIzEyMDsmIzc3OyYjNjg7JiM2OTsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzExOTsmIzc2OyYjMTIyOyYjMTA3OyYjNTM7JiM3NjsmIzEyMjsmIzY5OyYjMTE5OyYjNzc7JiM4MzsmIzU2OyYjMTIwOyYjNzc7JiM4NDsmIzEwNzsmIzExODsmIzc3OyYjODQ7JiM2OTsmIzEyMDsmIzc2OyYjMTIyOyYjNjk7JiMxMjA7JiM3ODsmIzY3OyYjNTY7JiMxMjA7JiM3NzsmIzY4OyYjMTAzOyYjMTE4OyYjNzc7JiM4NDsmIzY1OyYjMTE5Ow==
密码的题很多就是给你个txt,好评,上来给你一串字符,判断为base64,那么先base64decode一下,得到:
LzExOS8xMDEvMTA4Lzk5LzExMS8xMDkvMTAxLzExNi8xMTEvOTcvMTE2LzExNi85Ny85OS8xMDcvOTcvMTEwLzEwMC8xMDAvMTAxLzEwMi8xMDEvMTEwLzk5LzEwMS8xMTkvMTExLzExNC8xMDgvMTAw
解密之后还是base64,在这里说一下base编码的特征
-
base64:
(1)在base64中的可打印字符包括字母A-Z、a-z、数字0-9,+ / =。
(2)永远是4的倍数,不足四的用=补齐。
-
base32:
base32中只有大写字母(A-Z)和数字234567
-
base16:
base16中只有数字0-9以及大写字母ABCDEF
继续base64decode得到
/119/101/108/99/111/109/101/116/111/97/116/116/97/99/107/97/110/100/100/101/102/101/110/99/101/119/111/114/108/100
很明显的ascii码
主要为了练习练习py,每个题都写了exp
#coding=utf-8
import base64
cipher_ascii = '119/101/108/99/111/109/101/116/111/97/116/116/97/99/107/97/110/100/100/101/102/101/110/99/101/119/111/114/108/100'
cipher_ascii = cipher_ascii.replace('/',',')
cipher_list = list(map(int,cipher_ascii.split(',')))
lst = []
for num in cipher_list:
lst.append(chr(num))
plain = "".join(lst)
print('cyberpeace{'+plain+'}')
#cyberpeace{welcometoattackanddefenceworld}
幂数加密
考点是云影密码
此密码运用了1248代码
原理很简单,有了1,2,4,8这四个简单的数字,你可以以加法表示出0-9任何一个数字,例如0=28,7=124,9=18。 这样,再用1-26来表示A-Z,就可以用作密码了。 为了不至于混乱,我个人引入了第五个数字0,来用作间隔,以避免翻译错误,所以还可以称“01248密码”。 题目:12401011801180212011401804 第一步,分割,即124 1 118 118 212 114 18 4 第二步,基本翻译,例如124可以表示7,也可以表示16(但不可能是34,因为不会超过26),所以可以放在一边,翻译其他没有异议的, 可得:124 a s s w o 18 d 第三步,推测得出明文。可以推测后面的18表示r,前面的为p最合适。 明文:password(密码)
cipher是8842101220480224404014224202480122
因此根据云影密码的原理,写个脚本:
#coding=utf-8
num_str = '8842101220480224404014224202480122'
num = num_str.replace('0',',')
num_list = num.split(',')
print(num_list)
lst = []
asc2 = 0
for

最低0.47元/天 解锁文章
2468

被折叠的 条评论
为什么被折叠?



