javascript - 对用户信息使用客户端加密的好处

标签 javascript encryption web-frontend

最近,我发现一个网站,其中用户的电话号码部分可见,您必须单击链接才能显示其余部分。该链接有一个加密的 ID,javascript 函数使用该 ID 来提取电话号码。

这可能看起来很有趣,但我看不到使用这样的东西的好处,因为我可以轻松调用该函数并提取电话号码。此功能仅用于防止搜索引擎对用户信息建立索引吗?

如果您好奇,这就是函数:

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************

最佳答案

是的,这是混淆而不是加密。事实上,它是完全独立的,因此它不可能是其他任何东西。

首先,它似乎没有使用任何显式 key 。将看似对称的​​ key 集成到数据中并不能保证数据的安全——即使它确实使用了 AES 等真正的密码。

其次,这似乎不符合 Kerckhoff's principle ,它指出加密方案应该是安全的,即使攻击者知道该方案。由于任何人都可以在没有 key 的情况下执行该函数并获得正确的结果,这显然违背了这一原则。你当然可以争辩说,如果没有 key ,该方案将永远打破这一原则。

我唯一能想到的是防止(不复杂的)网络爬虫,例如搜索引擎使用的爬虫。

关于javascript - 对用户信息使用客户端加密的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40548856/

相关文章:

javascript - 什么是 Object.__proto__ 以及它与 Object.prototype 有何不同

javascript - 从 github 加载自述文件?

perl - 为什么 Digest::SHA 产生的散列与 RFC 4868 中显示的散列不同?

javascript - 如何通过jspdf将单个图像放置在多个页面上?

javascript - 如何通过特定键合并数组中的项目?

javascript - 使用另一个字符串键 "encrypt"字符串的最简单方法?

c++ - 在键上使用 gpg --list-packets 的输出来获取 mpi 值以生成 s 表达式

html - Google(静态)字体网址会更改吗?

html - 单击后按钮仍保持按下状态

html - 移动版本差异