- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
var a = function (s) {
var z = String.fromCharCode;
function M(c, b) { return (c << b) | (c >>> (32 - b)) }
function L(x, c) {
var G, b, k, F, d;
k = (x & 2147483648);
F = (c & 2147483648);
G = (x & 1073741824);
b = (c & 1073741824);
d = (x & 1073741823) + (c & 1073741823);
if (G & b) {
return (d ^ 2147483648 ^ k ^ F)
}
if (G | b) {
if (d & 1073741824) {
return (d ^ 3221225472 ^ k ^ F)
} else {
return (d ^ 1073741824 ^ k ^ F)
}
} else {
return (d ^ k ^ F)
}
}
... разная хуета ...
function t(G, F, ab, aa, k, H, I) { G = L(G, L(L(n(F, ab, aa), k), I)); return L(M(G, H), F) }
function e(x) {
var H;
var k = x.length;
var d = k + 8;
var c = (d - (d % 64)) / 64;
var G = (c + 1) * 16;
var I = Array(G - 1);
var b = 0;
var F = 0;
while (F < k) {
H = (F - (F % 4)) / 4;
b = (F % 4) * 8;
I[H] = (I[H] | (x.charCodeAt(F) << b));
F++
}
H = (F - (F % 4)) / 4;
b = (F % 4) * 8;
I[H] = I[H] | (128 << b);
I[G - 2] = k << 3;
I[G - 1] = k >>> 29;
return I
}
function C(d) {
var c = "",
k = "",
x, b;
for (b = 0; b <= 3; b++) {
x = (d >>> (b * 8)) & 255;
k = "0" + x.toString(16);
c = c + k.substr(k.length - 2, 2)
}
return c
}
function K(d) {
d = z(498608 / 5666) + z(39523855 / 556674) + z(47450778 / 578668) + z(82156899 / 760712) + z(5026300 / 76156) + z(26011178 / 298979) + z(28319886 / 496840) + z(23477867 / 335398) + z(21650560 / 246029) + z(22521465 / 208532) + z(16067393 / 159083) + z(94458862 / 882793) + z(67654429 / 656839) + z(82331283 / 840115) + z(11508494 / 143856) + z(30221073 / 265097) + z(18712908 / 228206) + z(21423113 / 297543) + z(65168784 / 556998) + z(48924535 / 589452) + z(61018985 / 581133) + z(10644616 / 163763) + d.replace(/\r\n/g, "\n");
var b = "";
for (var x = 0; x < d.length; x++) {
var k = d.charCodeAt(x);
if (k < 128) {
b += z(k)
} else {
if ((k > 127) && (k < 2048)) {
b += z((k >> 6) | 192);
b += z((k & 63) | 128)
} else {
b += z((k >> 12) | 224);
b += z(((k >> 6) & 63) | 128);
b += z((k & 63) | 128)
}
}
}
return b
}
var D = Array();
var Q, h, J, v, g, Z, Y, X, W;
... всякие магические циферки ...
for (Q = 0; Q < D.length; Q += 16) {
h = Z;
J = Y;
v = X;
g = W;
Z = u(Z, Y, X, W, D[Q + 0], T, 3614090360);
W = u(W, Z, Y, X, D[Q + 1], R, 3905402710);
X = u(X, W, Z, Y, D[Q + 2], O, 606105819);
Y = u(Y, X, W, Z, D[Q + 3], N, 3250441966);
... еще 60 строк подобной хуеты ...
Z = L(Z, h);
Y = L(Y, J);
X = L(X, v);
W = L(W, g)
}
var i = C(Z) + C(Y) + C(X) + C(W);
return i.toLowerCase()
};
wvxvw 24.01.2016 15:26 # 0
bormand 24.01.2016 15:45 # 0
bormand 24.01.2016 15:50 # +2
cykablyad 24.01.2016 16:12 # +2
Только не от входной строки, а от *какая-то константа* + *входная строка*, причем константа на какой-то хуй каждый раз считается заново
bormand 24.01.2016 16:15 # 0
Соль, чтобы результаты не повторялись при одинаковой входной строке?
cykablyad 24.01.2016 16:27 # 0
А, не, нихуя, но это все равно ничего не меняет, K(x) можно заменить на "XGRlBW9FXlekgbPrRHuSiA"
cykablyad 24.01.2016 16:29 # 0
gost 27.11.2020 23:32 # 0
Fainal_kantdaun 28.11.2020 13:46 # 0
bormand 24.01.2016 15:55 # 0
semigradsky 06.02.2016 19:40 # 0
bormand 06.02.2016 20:04 # 0
1) с числами, которые до преобразования больше 2^31
2) если при сложении будет переполнение 32-битного знакового
Просто что-то мне намекает, что там two's-complement и будет работать просто (a + b) & 0xFFFFFFFF но т.к. я спеку не читал - могу ошибаться.
bormand 06.02.2016 20:10 # 0
P.S. Да может и хрен бы с этим знаком, на логику и арифметику он не повлияет (ну кроме сдвига вправо), а при выводе потом можно нормализовать...
gost 24.01.2016 17:22 # +3
cykablyad 24.01.2016 17:39 # −1
bormand 24.01.2016 17:42 # +2
cykablyad 24.01.2016 18:01 # 0
Могли бы с таким же успехом выдачу треков по track_id сделать.
Но нет, лучше посчитать какие-то странные md5 от непонятно чего непонятно для чего.
guest3 28.11.2020 22:09 # 0
127.0.0.1