简单DES加密逆向学习

18 篇文章 2 订阅
5 篇文章 0 订阅
DES算法的入口参数又三个:

全称:数据加密标准(Data Encryption Standard),属于对称加密算法。DES是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。它的密钥长度是56位(因为每个第8 位都用作奇偶校验),密钥可以是任意的56位的数,而且可以任意时候改变。

key、DataMode,padding这些分别是啥??
- key为7个字节共56位,时DES算法的工作密钥
- Data为8字节64位,时要被加密或者解密的数据
- Mode为DES的工作方式
- padding为填充模式,如果加密后密文长度打不到整数倍(8字节、16字节),进行填充
- padding固定赋值为:CryptoJS.pad.Pkcs7即可

特点:
私钥和密钥相同、都有加密函数(encrypt)和解密函数(decrypt)
知道DES加密函数就能更快捷的找到加密入口

案例
  • 目标网站
    对其登录密码进行破解
    翼龙贷:https://cj.eloancn.com/user/login?service=https%3A%2F%2Fcj.eloancn.com%2Fpcgway%2Fapp001%2Fv1%2F02%3Fret%3DaHR0cHM6Ly9jai5lbG9hbmNuLmNvbQ%3D%3D&v=1621670639475

  • 根据上一篇博客所讲的通过关键字找到加密js.
    这样确实可以找到加密js文件,但是这里是通过上述所说的通过DES加密特点找多加密参数。多一种方式多一种解法有利于更快定位加密入口。
    在这里插入图片描述

  • 现在通过所说有DES加密有加密函数和解密函数的特点找加密入口
    通过关键字:encrypt
    在这里插入图片描述

  • 进入js文件打断点观摩一下。
    这里说一下断点为什么这么打,打在加密函数前面是为了知道这个函数是否是加密函数,看看传入的明文,我传入的是123456,这边t的值就是123456,说明断点对了。打在最后就是为了看他的输出是否对得上密文。
    在这里插入图片描述上述机密函数e就是它的DES加密的key值。那么这个加密函数就算已经破解了。

  • EDS加密需要什么??
    一个key也是密钥、一个工作方式就是ECB模式、一个填充方式pkcs7、一个明文。我们需要的就是这些了。
    那就把整个加密函数扣下

这里需要导入加密模块。

var CryptoJS = require('crypto-js')

function encryptByDES(t, e) {
    var a = CryptoJS.enc.Utf8.parse(e);
    try {
        var s = CryptoJS.DES.encrypt(String(t), a, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
        })
    } catch (t) {
        console.log(t)
    }
    return s.toString()
}

这里再补充一下,问什么使用123456作为明文。123456这数字听特殊的,不只是它见到,因为它的MD5加密的123456的值是特定的。比如上一篇文章记住md5加密的值就可以断定它是md5加密并且没有进行修改过的。那么就不用这么辛苦扣代码了,直接导入一个md5加密模块就可以。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值