Javascript Int vs BigInt库

时间:2016-12-11 02:04:29

标签: javascript jquery encryption

the JavaScript documentation我们看到,由于使用双精度浮点格式数字,超出 9007199254740991 需要一个库。 我们将找到一个方便的库列表来实现here

在搜索同态加密时,我遇到this question
在那里,您可以找到this link到浏览器中的Pailler实现。 在检查代码之后,我看到源代码包括了jsbn.js,它们完全有意义(因为你需要BigInts来加密)。但是,它处理要加密的数字的方式对我来说有点奇怪。

$('#btn_encrypt').click(function(event) {
      var valA = parseInt($('#inputA').val()),
        valB = parseInt($('#inputB').val()),
        startTime,
        elapsed;
      startTime = new Date().getTime();
      encA = keys.pub.encrypt(nbv(valA));
      elapsed = new Date().getTime() - startTime;
      $('#encA').html(encA.toString());
      $('#encAtime').html(elapsed);

从使用 parseInt nbv function nbv(i) { var r = nbi(); r.fromInt(i); return r; }看来很明显,他们依靠整数来创建BigInt,然后加密。 这有什么意义吗?当具有直接从字符串创建BigInts的功能时更是如此(// (protected) set from string and radix function bnpFromString(s,b) {
...
}
该链接已被引用这里有几个其他答案,加密网站,正如我所说我是JS的新手所以我想检查这是否确实是一种实施Pailler的禁忌方式,或者我已经理解了错误。 非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您链接到的Pailler实现似乎是作为概念验证演示而不是完整的实现。据推测,作者希望它仅用于玩具例子,如(36 + 14)* 7或(97 + 5)* 11而不是"真实"涉及数百个数字的例子。