JSFiddle - React, Tailwind, and code Playground
HTML
<textarea id="content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices tincidunt arcu eget sagittis. Aliquam erat volutpat. Quisque sit amet turpis libero. Etiam eget enim vehicula turpis varius blandit sed quis ante. In malesuada volutpat eros fermentum scelerisque. Cras eget accumsan quam. Curabitur feugiat nunc gravida magna faucibus vestibulum. Nunc porttitor imperdiet sem id pretium. Aliquam iaculis placerat est at luctus. Integer elementum, ipsum ac congue ultricies, mauris mauris pulvinar eros, ut convallis felis turpis sit amet orci. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam mollis mi sed enim molestie at tristique eros rhoncus. Vestibulum euismod posuere ipsum nec dapibus. Phasellus ut lectus eu felis semper condimentum. Integer rhoncus molestie nunc, accumsan elementum metus lobortis ut. Duis dictum feugiat massa eu pretium. Cras dignissim enim vitae ligula vulputate eu lacinia arcu luctus. Integer non sapien dui, ac posuere mi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
Aliquam erat volutpat. Nunc odio dolor, tristique adipiscing varius et, rutrum non elit. Quisque nec cursus urna. Aliquam tincidunt egestas lacinia. Maecenas ac sem quis risus aliquam ullamcorper et vel sapien. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec nec dolor dignissim neque faucibus semper. Nullam at sapien tortor. Suspendisse varius vulputate nulla sagittis gravida. Aliquam erat volutpat.
Etiam a urna non erat bibendum porttitor. In cursus pharetra est ut faucibus. Ut elit sapien, tincidunt vel dignissim id, posuere eu augue. Aliquam vitae tellus quis dui placerat euismod. Pellentesque dignissim, massa a imperdiet dignissim, libero nunc fringilla ligula, eu porttitor dolor enim non urna. Sed non lacus magna. Nam id ipsum mi. Phasellus faucibus dolor ac tortor venenatis eget vulputate leo bibendum....
JavaScript
var MD5 = function (string) {
function RotateLeft(lValue, iShiftBits) {
return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
}
function AddUnsigned(lX,lY) {
var lX4,lY4,lX8,lY8,lResult;
lX8 = (lX & 0x80000000);
lY8 = (lY & 0x80000000);
lX4 = (lX & 0x40000000);
lY4 = (lY & 0x40000000);
lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
if (lX4 & lY4) {
return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
}
if (lX4 | lY4) {
if (lResult & 0x40000000) {
return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
} else {
return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
}
} else {
return (lResult ^ lX8 ^ lY8);
}
}
function F(x,y,z) { return (x & y) | ((~x) & z); }
function G(x,y,z) { return (x & z) | (y & (~z)); }
function H(x,y,z) { return (x ^ y ^ z); }
function I(x,y,z) { return (y ^ (x | (~z))); }
function FF(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
};
function GG(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
};
function HH(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
};
function II(a,b,c,d,x,s,ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
};
function ConvertToWordArray(string) {
var lWordCount;
var lMessageLength = string.length;
var lNumberOfWords_temp1=lMessageLength + 8;
var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
var...