MCPcopy
hub / github.com/wensonsmith/YoudaoTranslator / md5

Function md5

src/libs/md5.js:1–200  ·  view source on GitHub ↗
(string)

Source from the content-addressed store, hash-verified

1const md5 = function (string) {
2
3 function RotateLeft(lValue, iShiftBits) {
4 return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
5 }
6
7 function AddUnsigned(lX,lY) {
8 var lX4,lY4,lX8,lY8,lResult;
9 lX8 = (lX & 0x80000000);
10 lY8 = (lY & 0x80000000);
11 lX4 = (lX & 0x40000000);
12 lY4 = (lY & 0x40000000);
13 lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
14 if (lX4 & lY4) {
15 return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
16 }
17 if (lX4 | lY4) {
18 if (lResult & 0x40000000) {
19 return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
20 } else {
21 return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
22 }
23 } else {
24 return (lResult ^ lX8 ^ lY8);
25 }
26 }
27
28 function F(x,y,z) { return (x & y) | ((~x) & z); }
29 function G(x,y,z) { return (x & z) | (y & (~z)); }
30 function H(x,y,z) { return (x ^ y ^ z); }
31 function I(x,y,z) { return (y ^ (x | (~z))); }
32
33 function FF(a,b,c,d,x,s,ac) {
34 a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
35 return AddUnsigned(RotateLeft(a, s), b);
36 };
37
38 function GG(a,b,c,d,x,s,ac) {
39 a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
40 return AddUnsigned(RotateLeft(a, s), b);
41 };
42
43 function HH(a,b,c,d,x,s,ac) {
44 a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
45 return AddUnsigned(RotateLeft(a, s), b);
46 };
47
48 function II(a,b,c,d,x,s,ac) {
49 a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
50 return AddUnsigned(RotateLeft(a, s), b);
51 };
52
53 function ConvertToWordArray(string) {
54 var lWordCount;
55 var lMessageLength = string.length;
56 var lNumberOfWords_temp1=lMessageLength + 8;
57 var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
58 var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
59 var lWordArray=Array(lNumberOfWords-1);
60 var lBytePosition = 0;

Callers 2

urlMethod · 0.85
urlMethod · 0.85

Calls 8

Utf8EncodeFunction · 0.85
ConvertToWordArrayFunction · 0.85
FFFunction · 0.85
GGFunction · 0.85
HHFunction · 0.85
IIFunction · 0.85
AddUnsignedFunction · 0.85
WordToHexFunction · 0.85

Tested by

no test coverage detected