目录
一、总体分类
1.密码编码
ASCII、base64等等,解题时比较简单,大多使用工具即可求出
2.加密算法
对称密钥算法(加密和解密密钥相同或可以相互退出)
DES 3DES(密钥长度翻倍) IDEA AES(至今难以破解)
非对称密钥算法(加密和解密密钥不同,且很难相互推出)其中公开密钥即加密密钥,简称公钥;解密密钥保密,称为私钥。一般来说,此加密更为复杂。
RSA(题大多) ECC ELGamal
3.数据摘要/Hash算法(验证数据完整性)
计算出的MD5或SHA是否与公布的数据相同,相同则未被篡改,不同则篡改或病毒。
MD5 SHA
二、细分
1.ASCII码
ASCII 码使用指定的7位或8 位二进制数组合来表示128 或256种可能的字符。标准ASCII 码也叫基础ASCII码,使用7位二进制数(剩下的1位二进制为0)来表示所有的大写(65开始)和小写字母(97开始),数字0(48开始)到9、标点符号,以及在美式英语中使用的特殊控制字符。
ASCll在线转换地址: http://www.mokuge.com/tool/ascito16/
推荐阅读:编码的故事-CSDN博客
2.base64(长度会变长)
算法:Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。如果剩下的字符不足3个字节,则用0填充
具体转换步骤
第一步,将待转换的字符串每三个字节分为一组,每个字节用ASCII码16进制表示,将该16进制转换成2进制,每个字节占8bit,那么共有24个二进制位。
第二步,将上面的24个二进制位每6个一组,共分为4组。
第三步,在每组前面添加两个0,每组由6个变为8个二进制位,总共32个二进制位,即四个字节。
第四步,根据Base64编码对照表获得对应的值.
3.URL编码
字符ASCII码的十六进制,需要在前面加%,编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。(故当其中很多%,则可能是URL加密)
规则:
字母、数字和字符, “a” 到 “z”、”A” 到 “Z” 和 “0” 到 “9” 保持不变;
特殊字符 “.”、”-“、”*” 和 “_” 保持不变;
除此之外,所有的其他字符都是不安全的,会变成以 % 开头的字符;
对于一个中文,会使用3个字节表示。
4.Unicode编码
规则建议参考:彻底弄懂 Unicode 编码 - crazyYong - 博客园 (cnblogs.com)
特点:密文中有很多\uxxx
![](https://img-blog.csdnimg.cn/direct/77f1e22e08db4bd987b9be2334d7a590.png)
5.JS混淆
对javascripe的变量名称和过程名称进行编码,从而起到js混淆,通常使用eval函数混淆处理,该函数计算字符串并执行其中JS代码。
特点:通常在S脚本里使用eval与function函数进行混淆。
JS在线解混淆:JS代码加密 | Javascript 混淆 | JS混淆加密 - [JavaScript加密] (jsjiami.com)