недавно я пытался выяснить, как преобразовать эту функцию, написанную на c #, в node.js, я очень долго пытался и смотрю на очень много вопросов, чтобы выяснить, как это сделать.6 или 7 часов, и мне не повезло, код, который я пытаюсь преобразовать в узел, является функцией шифрования, которая использует методы с битами uint и ulong для шифрования int, теперь я пришел к stackoverflow, чтобы попросить о помощи, так как я 'очень долго пытался и не нашел ни ответов, ни решений.Я старался изо всех сил, чтобы объяснить, что делает функция, извините, если это трудно понять.Вот код, который я пытался преобразовать.если вам удастся преобразовать это, я был бы признателен, если бы вы могли объяснить мне, как вы это сделали и как я мог бы сделать это сам в будущем.Спасибо
private static ulong teaEncrypt(ulong EncryptNum)
{
uint[] numArray = new uint[4]
{
1519839710U,
2072041700U,
3432422232U,
731448588U
};
uint num1 = (uint) (EncryptNum & (ulong) uint.MaxValue);
uint num2 = (uint) (EncryptNum >> 32);
uint num3 = 0;
for (int index = 0; index < 32; ++index)
{
num3 += 3523417902U;
num1 += (uint) (((int) num2 << 9) + (int) numArray[0] ^ (int) num2 + (int) num3 ^ (int) (num2 >> 5) + (int) numArray[1]);
num2 += (uint) (((int) num1 << 9) + (int) numArray[2] ^ (int) num1 + (int) num3 ^ (int) (num1 >> 5) + (int) numArray[3]);
}
return (ulong) num2 << 32 | (ulong) num1;
}
Вот моя попытка конвертировать код в node.js
var uint32 = require('uint32')
var numArray =
[
1519839710,
2072041700,
3432422232,
731448588
]
function encrypt(EncryptNum)
{
//const buf = Buffer.allocUnsafe(8);
var encnum32 = uint32.toUint32(EncryptNum)
var num1 = uint32.toUint32((encnum32 & 4294967295))
//console.log(num1)
var num2 = uint32.toUint32((encnum32 >> 32))
//console.log(num2)
var num3 = 0
for (i = 0; i < 32; i++) {
//console.log("1 " + uint32.toUint32(num2 << 9))
//console.log("2 " + buf.writeInt32BE(num2, 0))
num3 += 3523417902;
num1 += uint32.toUint32(((num2 << 9) + numArray[0] ^ num2 + num3 ^ (num2 >> 5) + numArray[1]))
num2 += uint32.toUint32(((num1 << 9) + numArray[2] ^ num1 + num3 ^ (num1 >> 5) + numArray[3]))
}
return num2 << 32 | num1
}