Crypto类型总结(持续汇总)
想做这样的一篇密码学总结的文章的想法主要来自于https://blog.csdn.net/weixin_45728976/article/details/109219997
这篇文章,对于这篇文章里面已经涉及到的内容的基础点不再进行繁琐的讲论。
接下来总结的主要是各种各样的crypto的魔改或者容易忘却的思路
目录
playfair
RSA
1.unencode加密:
这种的加密方式跟base885有点类似,容易搞混淆,不过还是可以区分的,base85的特殊字符大多数情况是出现在偏字符串的两端,
unencode加密后的字符串的特殊字符会出现在字符串中间的部分,
http://www.hiencode.com/uu.html为了保险起见还是存一个解密的网站
这里的列题是buuctf的unencode的题目
2.单对字符串的ascii码进行处理的题目
这种加密方法的特点就是通过研究其ascii码的规律的没有特点,可以采用字节写个脚本输出其根前缀字符串的相加减的结果来观察其的规律,
如果找不出规律的话,大概就只能使用爆破了,不过这种可以采用爆破的一般是单表替换(就是索引表只有一个或者没有),使用字频计算的
爆破工具可以爆破出其可能的结果,然后从可能的结果找答案。
列如:buuctf中的凯撒?替换?呵呵!
https://quipqiup.com/
使用这个网站进行爆破的话可以爆破出flag
而且要给定一个对应的字符部分才能提高爆破概率吧
3.playfair
这是一个矩阵索引密码表的替换,在csdn上面有讲的很详细的,一般默认的密钥是'playfair'的字符串,也可以认为替换,这个是两两一组然后替换字符来加密
特点就是字符串加密后的结果中还是只含有字母(一般),魔改的就可能不一定了。
解密:https://www.metools.info/code/playfair_186.html
列:buuctf crypto Cipher
4古典加密之一:电报密码
是古老的传送电报的方式所导致的一种加密方法,这个就是查看电报对于的字符类型就好
列:buuctf crypto 信息化的时代
解密:http://code.mcdvisa.com/
5.哈希值:哈希操作的判断方式
哈希操作就像政府给我们每个人一个身份证号码一样,用于辨识自己的身份,hash操作就是类似的操作,给文件内容打上一个标识值,
用于确定文件是否被修改过,其中常出现的是md5和sha大家族,但由于md5的安全性,其的结果由于只有32位长,所以容易发生哈希碰撞,
也就是hash值不唯一,就是不同的输入得到同样的输出(就是由32位长度造成的),sha1本质上类似md5,但是其的安全性更高,发生哈希碰撞的列子也比较少,
所以sha1极其后来的几种方法更常用在如今的安全验证。sha1通长的hash值长度是40
例:buuctf re CrackRTF
这里面的值,上面那一串是字符串经过sha1操作,下面的是经过md5操作。
base91
就是base大家族里面的一个成员,base91的特征就是其编码后的字符串特别乱,就是特俗字符特别多。比如这次的SQCTF里面的“小白兔白又白”
其最开始的就是base91编码.
存下一个解密网站:
https://www.metools.info/code/base91.html
sqctf题目如下:
下载打开文件:
可以看到这个字符串特别乱像这种特别乱然后得到的提示还是base(贝斯),大概率可能就算base91或者base92了。
可以看到正常解码,然后剩下的还是base大家族,base64base62base32最后使用rabbit解密,密钥为233,因为提示为哈哈大笑(老梗了)
RSA
个人进行了一点补充和汇总:
https://www.cnblogs.com/miaosamakawayii/p/18860444
URL编码
URL编码因为其的特征是%这个字符,所有容易跟HEX编码混淆,但是URL跟HEX还是有比较好区分的区别的,那就是由于URL不会队数字和字母进行编码,所以用URL进行编码的字符串,跟用hex进行编码的结果相比还是有比较大的区别的。
上面是hex,下面的url,第一个区别就是经过hex编码字符串会跟原文大部分字符都有区别,并且其中出现的字符也只会是十六进制的16个字符,但是url进行编码的就是特殊字符才会被编码而字母跟数字是不会变化的,所以编码后面的字符串如果有字母或者是数字并且是有语义意义的或者是具备一定规律的,也许就是url编码。而其跟escape编码就是escape编码后的每个%后面都会带一个u然后跟着数字。
例子:[CISCN 2023 初赛]Sign_in_passwd
这个题目首先是改文件后缀为txt然后进行看看加密的flag是什么。
这个加密后的字符串第一眼看着像base91,但是base91编码之后的特殊字符肯定不会这么少,或者说第一眼给人的感觉应该会更乱。并且看着第二段的字符产,其的英文字符还有连在一起满足一定顺序的,所以猜测其是url编码的。
编码之后可以看到大部分都没被改变,就是一些特殊字符被编码回来了。继续观察字符串的特点。首先是第一段的字符串看着特别没有规律,但是第二段字符串看着其一些子字符串段会符合一点顺序。可以知道这两段字符串,而且看着第二段字符串老感觉像是一个打乱的替换表,因为看下去会发现第一段虽然字符串比较乱,但是其中的字符一定在第二段之中,并且第二段字符串又相对有点顺序。看看第二段的长度。
可以看到其长度是65,可能是使用自定义表格的base64编码。
成功解密得到flag。