您当前的位置:首页 > 计算机 > 编程开发 > 数据结构与算法

算法和网页上的结果对比不一致

时间:06-03来源:作者:点击数:
城东书院 www.cdsy.xyz

我们先来看一段简单的代码

var Test =function(){return"Test";}

var get_func_length=function(){
    return Test.toString().length;
}

console.log(get_func_length())

请注意Test函数是没有格式化的代码

它的输出结果是25

但是当我们格式化了Test函数之后它就变成了36

也许看到这,你可能会想到格式化的检测,但是它不仅仅可以用于格式化检测

我们继续看下面的代码

var target=25;
var Test = function(){return"Test";}

var get_func_length=function(){
    return Test.toString().length;
}

console.log(get_func_length());

function get_key() {
    if (get_func_length() === target) {
        return "正确的key";
    } else {
        return "错误的key";
    }
}

console.log(get_key());

假设这个get_key函数是我们获取某个算法的key或者盐值或者iv,当我们把代码扣出来格式化后放在我们本地运行时,他就会返回错误的key值,导致我们这个算法加密的结果与网页上面的不一致,这就是蜜罐,你看似对了,实则只不过是别人给你设置的陷阱,想让你跳进去的坑,由于我这个是简单的代码,并没有经过高度的混淆处理以及vmp化,如果我额外的对代码进行了混淆以及vmp化,可想而知,找这个检测点的找多久啊,所以我们平时扣算法的时候能不格式化就不要格式化.

城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐