JSFiddle - React, Tailwind, and code Playground
by Tgwizman
JavaScript
function badHash(data) {
while (data.length < 16) data += data;
var output = '',
numLine = '',
tn1, tn2;
for (var i=0; i<data.length; i++) {
switch (i%4) {
case 0:
tn1 = data.charCodeAt((i*1)%data.length)
* data.charCodeAt((i*25)%data.length)
* data.charCodeAt((i*9)%data.length)
* data.charCodeAt((i*17)%data.length);
tn2 = data.charCodeAt((i*11)%data.length)
* data.charCodeAt((i*2)%data.length)
* data.charCodeAt((i*18)%data.length)
* data.charCodeAt((i*26)%data.length);
break;
case 1:
tn1 += data.charCodeAt((i*19)%data.length)
* data.charCodeAt((i*10)%data.length)
* data.charCodeAt((i*3)%data.length)
* data.charCodeAt((i*27)%data.length);
tn2 += data.charCodeAt((i*28)%data.length)
* data.charCodeAt((i*20)%data.length)
* data.charCodeAt((i*12)%data.length)
* data.charCodeAt((i*4)%data.length);
break;
case 2:
tn1 += data.charCodeAt((i*5)%data.length)
* data.charCodeAt((i*21)%data.length)
* data.charCodeAt((i*29)%data.length)
* data.charCodeAt((i*13)%data.length);
tn2 += data.charCodeAt((i*14)%data.length)
* data.charCodeAt((i*6)%data.length)
* data.charCodeAt((i*22)%data.length)
* data.charCodeAt((i*30)%data.length);
break;
case 3:
tn1 += data.charCodeAt((i*31)%data.length)
* data.charCodeAt((i*15)%data.length)
* data.charCodeAt((i*7)%data.length)
* data.charCodeAt((i*23)%data.length);
tn2 += data.charCodeAt((i*32)%data.length)
* data.charCodeAt((i*24)%data.length)
* data.charCodeAt((i*16)%data.length)
* data.charCodeAt((i*8)%data.length);
tn1 = Math.round(tn1/32);
tn2 = Math.round(tn2/32);
numLine += (tn1 + '' + tn2).toString(16);
}
}
while (numLine.length > 1) {
if (parseInt(numLine.slice(0,3)).toString(16) < 256) {
output += parseInt(numLine.slice(0, 3)).toString(16);
numLine = numLine.slice(3, numLine.length);
} else {
output +=...