加密算法特征速查表

加密算法特征速查表

输出长度特征

算法输出长度输出格式示例
MD532 字符十六进制5d41402abc4b2a76b9719d911017c592
SHA140 字符十六进制aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
SHA25664 字符十六进制e3b0c44298fc1c149afbf4c8996fb...
SHA512128 字符十六进制cf83e1357eefb8bdf1542850d66d8...
AES可变Base64U2FsdGVkX1+LpXMIpGBwDA==
RSA-2048256 字节Base64长字符串

JavaScript 库特征

CryptoJS

1
2
3
4
5
6
// 特征代码
CryptoJS.MD5(text);
CryptoJS.SHA256(text);
CryptoJS.AES.encrypt(text, key);
CryptoJS.enc.Base64.stringify();
CryptoJS.lib.WordArray;

识别要点:

  • 全局变量 CryptoJS
  • 引入 CDN: crypto-js.min.js
  • 方法调用格式: CryptoJS.算法名.方法

crypto (Node.js)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
const crypto = require("crypto");

// MD5
crypto.createHash("md5").update(text).digest("hex");

// HMAC
crypto.createHmac("sha256", key).update(text).digest("hex");

// AES
const cipher = crypto.createCipheriv("aes-256-cbc", key, iv);

Web Crypto API

1
2
3
4
// 特征代码
window.crypto.subtle.digest("SHA-256", data);
window.crypto.subtle.encrypt(algorithm, key, data);
window.crypto.getRandomValues(array);

常见加密模式

对称加密(AES)

模式特征参数
AES-ECB最简单,不安全只需 key
AES-CBC需要 IVkey + iv
AES-CTR计数器模式key + counter
AES-GCM认证加密key + iv + tag

识别示例:

1
2
3
4
5
6
// CBC 模式
CryptoJS.AES.encrypt(text, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7,
});

非对称加密(RSA)

1
2
3
4
// JSEncrypt 特征
const encrypt = new JSEncrypt();
encrypt.setPublicKey(publicKey);
const encrypted = encrypt.encrypt(text);

Hash 算法特征表

输入MD5SHA1SHA256
"" (空字符串)d41d8cd98f00b204...da39a3ee5e6b4b0d...e3b0c44298fc1c14...
"a"0cc175b9c0f1b6a8...86f7e437faa5a7fc...ca978112ca1bbdca...
"123456"e10adc3949ba59ab...7c4a8d09ca3762af...8d969eef6ecad3c2...

快速验证:

1
2
3
import hashlib
hashlib.md5(b'123456').hexdigest()
# 'e10adc3949ba59abbe56e057f20f883e'

混淆后的识别

特征字符串

搜索这些关键字:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
"MD5"
"SHA"
"AES"
"RSA"
"encrypt"
"decrypt"
"cipher"
"hash"
"digest"
"0123456789ABCDEF" // 十六进制字符集
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" // Base64

特征函数

1
2
3
4
5
6
7
8
// MD5 特征 - 常量
0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476

// AES 特征 - S-Box
[0x63, 0x7c, 0x77, 0x7b, ...]

// Base64 特征
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

加密参数常见名称

用途常见变量名
密钥key, secret, secretKey, password
初始向量iv, ivBytes, nonce
salt, randomSalt
签名sign, signature, hash
时间戳timestamp, ts, time, nonce

快速识别流程

graph TD
A[发现加密字符串] --> B{检查长度}
B -->|32字符| C[可能是MD5]
B -->|40字符| D[可能是SHA1]
B -->|64字符| E[可能是SHA256]
B -->|可变长度| F{检查格式}
F -->|Base64| G[可能是AES]
F -->|十六进制| H[检查是否是Hash]
graph TD
A[发现加密字符串] --> B{检查长度}
B -->|32字符| C[可能是MD5]
B -->|40字符| D[可能是SHA1]
B -->|64字符| E[可能是SHA256]
B -->|可变长度| F{检查格式}
F -->|Base64| G[可能是AES]
F -->|十六进制| H[检查是否是Hash]
graph TD
A[发现加密字符串] --> B{检查长度}
B -->|32字符| C[可能是MD5]
B -->|40字符| D[可能是SHA1]
B -->|64字符| E[可能是SHA256]
B -->|可变长度| F{检查格式}
F -->|Base64| G[可能是AES]
F -->|十六进制| H[检查是否是Hash]

Python 实现对照

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import hashlib
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64

# MD5
hashlib.md5(b'text').hexdigest()

# SHA256
hashlib.sha256(b'text').hexdigest()

# HMAC-SHA256
import hmac
hmac.new(b'key', b'text', hashlib.sha256).hexdigest()

# AES-CBC 加密
key = b'1234567890abcdef' # 16字节
iv = b'abcdefghijklmnop' # 16字节
cipher = AES.new(key, AES.MODE_CBC, iv)
encrypted = cipher.encrypt(pad(b'plaintext', AES.block_size))
encrypted_b64 = base64.b64encode(encrypted)

# AES-CBC 解密
cipher = AES.new(key, AES.MODE_CBC, iv)
decrypted = unpad(cipher.decrypt(base64.b64decode(encrypted_b64)), AES.block_size)

常见加密库 CDN

识别使用的加密库:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<!-- CryptoJS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>

<!-- JSEncrypt (RSA) -->
<script src="https://cdn.jsdelivr.net/npm/jsencrypt/bin/jsencrypt.min.js"></script>

<!-- Forge -->
<script src="https://cdn.jsdelivr.net/npm/node-forge/dist/forge.min.js"></script>

<!-- sjcl (Stanford JavaScript Crypto Library) -->
<script src="https://bitwiseshiftleft.github.io/sjcl/sjcl.js"></script>

相关章节


相关内容

如果这篇文章对你有帮助,请我喝杯咖啡吧~
+5 支付宝支付宝
+5 微信微信