В настоящее время я работаю над алгоритмом хеширования в школе и получаю информацию из учебника в Интернете.
https://www.cryptocompare.com/coins/guides/how-does-a-hashing-algorithm-work/
В уроке на шаге 9 они хотят, чтобы я собрал слова XoR и создал 80 слов из битовых слов моего персонажа. Я точно не знаю, как это сделать, но я понял.
Мои текущие битовые слова размером 16x32 выглядят так (как в учебнике):
01000011010100100101100101010000
01010100010011111000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000110000
И это то, что учебник хочет, чтобы я сделал.
Преобразуйте битовые слова размером 16 x 32 символа в 80 слов, используя шаг
функция петли. Сначала выберите четыре слова для первого прохода через
цикл, представляющий собой строки 1, 3, 9 и 14 из шага 8.
В следующий раз через цикл мы будем использовать слова 2,4,10,15 со стадии
8.
Следующий процесс - совместить слова XoR. Ксоринг - это просто основа
Вычислительная функция, которая дает вывод q, только если два
оба входа имеют 1 в этой позиции - если они не
ноль.
The function is ((14 XOR 9) XOR 3) XOR 1) which is:
00000000000000000000000000000000
XOR
01000011010100100101100101010000
Is
01000011010100100101100101010000
Это мой код:
function convertToROA(n) {
var h1 = "01100111010001010010001100000001";
var h2 = "11101111110011011010101110001001";
var h3 = "10011000101110101101110011111110";
var h4 = "00010000001100100101010001110110";
var h5 = "11000011110100101110000111110000";
var intBit = "";
var binary = "";
n.forEach(function(element) {
binary = binary + 0 + (element).toString(2);
});
var length = binary.length;
intBit = intBit + binary + 1;
for (var i = 0; i < (2**9)-length-1; i++) {
intBit = intBit + "0";
}
console.log(intBit.length);
console.log(binary);
console.log(binary.length);
console.log((binary.length).toString(2).length);
intBit = intBit.substring(0, (2**9)-((binary.length).toString(2).length));
intBit = intBit + (binary.length).toString(2);
console.log(intBit);
var splitText = intBit.match(/.{32}|/g);
console.log(splitText);
}