Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function pwdcrypt(str)
- {
- var key = new Array();
- var dst = new Array();
- for (var i = 0; i < str.length; i++)
- {
- key[i] = str.charCodeAt(i);
- dst[i] = key[i];
- }
- var hash_keys = new Array(4);
- for (var i = 0; i < 4; i++)
- {
- hash_keys[i] = new Array(2);
- }
- hash_keys[0][0] = 213119; hash_keys[0][1] = 2529077;
- hash_keys[1][0] = 213247; hash_keys[1][1] = 2529089;
- hash_keys[2][0] = 213203; hash_keys[2][1] = 2529589;
- hash_keys[3][0] = 213821; hash_keys[3][1] = 2529997;
- var msum = function (m, n)
- {
- return (((((m & 0xffff0000) * n[0]) >>> 0) + (((m & 0x0000ffff) * n[0]) >>> 0)) + n[1]) >>> 0;
- };
- for (var i = 0; i < 16; i += 4)
- {
- var dw = 0;
- for (var j = 0; j < 4; j++)
- {
- dw += key[i + j] << j * 8;
- }
- var tmp = msum(dw, hash_keys[Math.floor(i / 4)]);
- key[i + 3] = (tmp >> 24) & 0xFF;
- key[i + 2] = ((tmp - ((key[i + 3] << 24) & 0xFF000000)) >> 16) & 0xFF;
- key[i + 1] = ((tmp - ((key[i + 3] << 24) & 0xFF000000) - (key[i + 2] << 16)) >> 8) & 0xFF;
- key[i + 0] = ((tmp - ((key[i + 3] << 24) & 0xFF000000) - (key[i + 2] << 16) & 0xFF - (key[i + 1] << 8) & 0xFF));
- }
- dst[0] = dst[0] ^ key[0];
- for (var i = 1; i < 16; i++)
- {
- dst[i] = dst[i] ^ dst[i - 1] ^ key[i];
- }
- for (var i = 0; i < 16; i++)
- {
- if (dst[i] == 0)
- {
- dst[i] = 102;
- }
- }
- var e = "0x";
- for (var i = 0; i < 16; i++)
- {
- if (dst[i] < 16)
- {
- e += "0";
- }
- e += parseInt(dst[i], 10).toString(16);
- }
- return e;
- }
Advertisement
Add Comment
Please, Sign In to add comment