Как преобразовать большое шестнадцатеричное значение в целое число в nodejs?

Существует большое шестнадцатеричное значение:

var Hex = "ad6eb61316ff805e9c94667ab04aa45aa3203eef71ba8c12afb353a5c7f11657e43f5ce4483d4e6eca46af6b3bde4981499014730d3b233420bf3ecd3287a2768da8bd401f0abd7a5a137d700f0c9d0574ef7ba91328e9a6b055820d03c98d56943139075d";

Как я могу преобразовать его в большое целое число в node.js? Я пытался искать, но то, что я нашел, это

var integer = parseInt(Hex, 16);

Но это не сработает, если я поставлю большое шестнадцатеричное значение. Я думаю. результат,

1.1564501846672726e+243

Как я могу вернуть нормальное большое целое число? Я хочу использовать это значение для модуля в шифровании RSA. На самом деле я не знаю, должен ли я конвертировать его или нет.


person JuntaeKim    schedule 09.12.2015    source источник
comment
Интересно, является ли это новым приемлемым ответом с использованием BigInt: stackoverflow.com/a/53751162/470749   -  person Ryan    schedule 18.06.2020


Ответы (1)


Вам нужны точные целые числа для модульной арифметики для RSA, но самое большое целое число в JavaScript равно 9007199254740991 без потери точности. Вы не можете представить большее целое как число. Вам нужно будет разработать способ выполнения модульной арифметики со многими фрагментами большого целого числа или просто использовать один из доступных способов, таких как арифметика больших чисел в JSBN, который также обеспечивает полную реализацию RSA, включая заполнение PKCS#1 v1.5.

person Artjom B.    schedule 09.12.2015
comment
Спасибо. Я прочитал ваш ответ и нашел документ об этом, но обычный JSBN не мог использоваться без браузера. К счастью, я нашел этот github: github.com/eschnou/node-bignumber Но я получил ошибку. Вы знаете, что не так? посетите страницу: stackoverflow.com/questions /34180984/ . - person JuntaeKim; 09.12.2015