Node.js将128字节的8位整数转换为字符串

时间:2017-03-27 22:43:14

标签: javascript node.js bit-manipulation

如何在node.js / JS中转换大数组,如8位值 [28,27,... 250]以字母表中的bignumber表示?

是否有lib?我找不到。

1 个答案:

答案 0 :(得分:1)

128 BYTES号码?什么 ?你想要计算宇宙中的原子数量吗?

AFAIU javascript无法处理此问题。而不是我现在的任何其他语言。不是我知道的任何lib.Also Buffer只能处理64个BIT数字,而不是字节。这是大多数语言的通常限制。

你不能用如此大的数值来做数学。如果这只是以比数组循环更快的方式比较值的情况,那么您可以做的是在HEX中获取字符串表示(因为您可以单独处理字节)。以下是获取十六进制表示的方法:

var arrn = [28, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250];

function bytetohex(byte){
return (byte & 0xFF).toString(16);
}
var n = arrn.reduce((last,curr,ix)=>(ix==1?bytetohex(arrn[0]):last)+bytetohex(curr));
console.log(n);

修改

如果您想要的墙壁是RSA解密,您可能首先要求它。您会更快地收到回复。 有几个库可供使用。

这个问题有一些链接:Javascript RSA decryption using private key

此处还有更多内容:RSA encryption/decryption compatible with Javascript and PHP

网上有足够的资源。