一、加密算法
1、MD5
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
不可逆:不能直接的逆向,简单密码有枚举库
2、SHA
安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。
能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。
密文为0-9,a-z的数字组合,有四种不同的加密方式对于不同的长度
MD5,SHA1,SHA256,SHA512
3、进制转换
二进制,十进制,十六进制
4、时间戳
时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)
UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z
一个小时表示为UNIX时间戳格式为:3600秒,一天表示为UNIX时间戳为86400秒,闰秒不计算。
一般用于用户的登录时间,博客的发布等等
5、URL编码
url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码,作为URL的一部分或者分离地发给服务器。
空格变为%20:由于空格的特殊的含义,它会进行转化
6、BASE64
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,基于64个可打印字符来表示二进制数据的方法
由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本
规律:明文有多长,密文相对有多长,0-9,a-z,且区分大小写,经常在密文后面出现等号=
应用:对代码,密码,参数进行编码加密,常用于web
7、Unescape
JavaScript unescape() 函数可对通过 escape() 编码的字符串进行解码
unescape(string),该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码
特点:
- 以%u开始加上四位的数字
- 两个字符进行转换(最后一个除外)
8、AES
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。
举例:明文123456,密码admin,拼接后加密,偏移量不是开始到结尾,而是从一个部分进行加密
将加密的用base64解密 --> 解密为乱码多半为aes加密(有时会出现斜杠)
二、常规加密算法的特性
- 长度位数
- 字符规律
- 代码分析
- 搜索获取等
三、某 CMS 密码加密解密
- 登录搭建的discuz论坛的数据库
- 解密查询:普通的MD5无法解密
- 查找salt:没有发现salt,估计是其它的加密方法