最近,我遇到了一个网站,其中用户的电话号码部分可见,您必须单击链接以显示其余部分。该链接具有加密ID, javascript 函数用于提取电话号码。
这可能看起来很有趣但我无法看到使用此类功能的好处,因为我可以轻松调用该功能并提取电话号码。此功能仅用于防止搜索引擎将用户编入索引吗?信息?
如果您有点好奇,这就是功能:
function d(num){
num=num.substring(2);
var c=parseInt(num[0]);
var n="";
var i=c+1;
while(i<num.length)
{
n+=num[i];
c=parseInt(num[i+1]);
i+=c+1;
i++;
}
return n;
}
该链接的ID如下所示:X_31320224932121817272269264130*********
答案 0 :(得分:2)
是的,这是混淆而不是加密。它完全是自包含的事实使得它不能是除此之外的任何东西。
首先,它似乎没有使用任何显式键。将看似对称的密钥集成到数据中并不会使其安全 - 即使它确实使用了真正的密码,如AES。
其次,这似乎不符合Kerckhoff's principle,其中规定即使攻击者知道该方案,加密方案也应该是安全的。任何人都可以在没有钥匙的情况下执行该功能并获得正确的结果,这显然会使原则无效。你当然可以争辩说,如果没有钥匙,该计划将永远违背这一原则。
我唯一能想到的就是保护(不成熟的)网络抓取工具,例如搜索引擎使用的网页抓取工具。