JS逆向:JS中常见的加密算法及逆向特征
1. 取盐算法
取盐 算法,也叫 摘要算法,是对数据进⾏⼀系列运算后,截取⼀部分关键值进⾏校验。因此运算过程 不可逆,⽆法还原出加密前的 初始⽂本。取盐算法得到的结果长度⼀般是固定的,⽆论输⼊的消息有多长,计算出来的消息摘要的长度总是固定的。⼀般地,只要输⼊的⽂本不同,对其进⾏摘要以后产⽣的摘要消息也必不相同,但相同的⽂本输⼊必会产⽣相同的输出。
1.1. MD5 逆向特征
字符串为 16 进制,即数字英⽂组合,⽽且 英⽂最⼤是字母 f 。
位数为 16、32。
搜索关键字:
-- 关键词:md5、MD5
-- 默认的 key 值:0123456789abcdef、0123456789ABCDEF
-
- 原始MD5的魔法值(16进制):0x67452301、0xefcdab89、0x98badcfe、0x10325476
-- 原始MD5的魔法值(10进制):1732584193、271733879、1732584194、271733878
123456 计算结果值:
16 位,结果值 49 开头。
-- 16位⼩写计算结果:49ba59abbe56e057
-- 16位⼤写计算结果:49BA59ABBE56E057
32 位,结果值 e10、E10 开头。
-- 32位⼩写计算结果:e10adc3949ba59abbe56e057f20f883e
-- 32位⼩写计算结果:E10ADC3949BA59ABBE56E057F20F883E
注意:16位 的结果值是 32位 的结果值的⼀部分。
1.2. SH A 逆向特征
字符串为 16 进制,即数字英⽂组合,⽽且 英⽂最⼤是字母 f 。
位数为 40、64、96、128 等,位数均是 8 的倍数。
123456 计算结果值:
SHA1:40 位:7c4a8d09ca3762af61e59520943dc26494f8941b
SHA256:64 位:8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
SHA384:96 位:0a989ebc4a77b56a6e2bb7b19d995d185ce44090c13e2984b7ecc6d446d4b61ea9991b76a4c2f04b1b4d244841449454
SHA512:128 位:
ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413 2. 可还原加密算法
特征:
1、字符串为 16 进制,即数字英⽂组合,⽽且 英⽂最⼤是字母 f 。
2、字符串为 base64 编码形式,由数字 0-9、⼩写字母 a-z、⼤写字母 A-Z 以及字符 +、_、= 组成,且最后⼀个或javascript的特性
最后两个字符为 =。通常⽽⾔ Base64 的识别特征为索引表,当我们能到
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 这样索引表,再经过简单的分析基本就能判定是Base64 编码。
2.1. R SA 逆向特征
RSA 是典型的 ⾮对称加密,拥有⼀个公钥和⼀个私钥。
其中:
-- 客户端(浏览器)拥有公钥,服务器同时拥有公钥和私钥。
-- 同⼀个明⽂可以⽣成不同的密⽂。
-- 必须先 new JSEncrypt 加密对象,然后 setPublicKey。
加密后的数据长度不可能是 8 的倍数。
搜索关键词:new JSEncrypt、setpublickey、ABCDEFG、abcdefg。
2.2. AES 逆向特征
AES 是 对称加密 的⼀种。
⼀般AES加密出来的数据是128 或 256 的整倍数。
搜索关键词:cryptojs.aes、encryptedString、010001(或类似⼆进制模值)。
2.3. DES 逆向特征
搜索关键词:pt。
其他编码算法
3.1. Ba se64 逆向特征
字符串的长度为4的整数倍。
字符串的符号取值只能在 A-Z, a-z, 0-9, +, /, = 共计65个字符中,且 = 如果出现就必须在结尾出现。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论