Skip to content

加密算法

一、加密算法

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 替换这样的字符序列进行解码

特点:

  1. 以%u开始加上四位的数字
  2. 两个字符进行转换(最后一个除外)

8、AES

密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。

举例:明文123456,密码admin,拼接后加密,偏移量不是开始到结尾,而是从一个部分进行加密

将加密的用base64解密 --> 解密为乱码多半为aes加密(有时会出现斜杠)

二、常规加密算法的特性

  1. 长度位数
  2. 字符规律
  3. 代码分析
  4. 搜索获取等

三、某 CMS 密码加密解密

  1. 登录搭建的discuz论坛的数据库
  2. 解密查询:普通的MD5无法解密
  3. 查找salt:没有发现salt,估计是其它的加密方法

Released under the MIT License.