使用XOR函数将字符位中的单词一起XoR

时间:2019-01-11 18:24:52

标签: javascript encryption hash binary xor

我目前正在学校研究一种哈希算法,并且正在从在线教程中获取信息。

https://www.cryptocompare.com/coins/guides/how-does-a-hashing-algorithm-work/

在第9步的教程中,他们希望我一起XoR单词,并从我的字符位单词创建80个单词。我不知道该怎么做,但我明白了。

我当前的16x32字符位字看起来像这样(与教程中相同):

01000011010100100101100101010000 
010101000100111110­0­0­0­0­0­0­0­0­0­0­0000    
00000000000000000000000000000000 
00000000000000000000000000000000    
00000000000000000000000000000000 
00000000000000000000000000000000    
00000000000000000000000000000000 
00000000000000000000000000000000    
00000000000000000000000000000000 
00000000000000000000000000000000    
00000000000000000000000000000000 
00000000000000000000000000000000    
00000000000000000000000000000000 
00000000000000000000000000000000    
00000000000000000000000000000000 
00000000000000000000000000110000

这就是本教程要我做的。

  

使用一个步骤将16 x 32字符位字转换为80个字   循环功能。首先选择四个单词,以便第一次通过   循环,其中包含第8步中的字符串1,3,9&14。

     

下一次循环时,我们将使用舞台上的单词2,4,10,15   8。

     

下一步是将单词XoR在一起。 Xoring只是一个基本的   仅在两个函数同时给出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);
}

0 个答案:

没有答案