总结-加密算法
·
哈希算法
MD5
加密长度为32位不变,加密字符串123后四位为4b70即为标准md5加密算法md5常见变形有:将时间戳或者随机数加入到算法函数的参数中导致加密出的字符串变化,或者就是直接魔改
sha系列
sha1长度40位 sha224长度56位 sha256 长度64位 sha384 长度96位 sha512 长度128位 其他和md5相同这里sha256用的比较多,着重记一下即可
hmac
Hmac就是在哈希算法基础上添加一个参数,参数一变致使算法结果变化,这里判断就根据哈希算法一些特性(长度固定,入参不变密文不变)结合两个入参即可判断对称加密算法
首先要区别加密算法(AES和DES)与 加密模式(CBC和ECB),加密模式是决定加密算法中带不带iv进行计算(CBC带iv ECB不带iv),下面总结AES和DES:AES
此算法中key(密钥)长度一般是16 字节(128 位)、24 字节(192 位)、32 字节(256 位),这是判断AES的最直接特征,如果是CBC模式,则可以看iv,iv必须是16字节DES
此算法中key(密钥)长度为8字节(64位,有效长度只有56位),CBC模式下,iv是8字节对称加密的其他判断方式
根据函数名,关键字:CryptoJS(这里可以看有没有FunctionLocation,或者看里面方法是否齐全来判断是否魔改),aes-128-cbc(调用仿node中的crypto库在浏览器实现对称加密)等非对称加密算法
特征:短明文加密出长密文,一般用作对密码的加密JS代码中的特征
- 有密钥设置 setPublicKey一类的方法,如果密钥在前端写死长这样:
// 通常以Base64 编码 + 固定标识头 / 尾的形式出现
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ...(中间是Base64编码内容)
-----END PUBLIC KEY-----
- RSA 的密钥长度是1024/2048/4096 位(现代场景以 2048 位为主),对应 Base64 公钥的长度有固定范围:
- 1024 位公钥:Base64 串约 172 字符;
- 2048 位公钥:Base64 串约 342 字符;
- 4096 位公钥:Base64 串约 684 字符。
国密
一般会写出来,不用分析- sm2:其实就是RSA加密,但相同安全强度下,SM2 的密钥长度远短于 RSA,如 256 位 SM2≈2048 位 RSA
- sm3:对标Sha256
- sm4:对标AES,但仅支持128 位固定密钥长度(无其他可选);
更多推荐



所有评论(0)