(() => { const generateRandomString = (length) => { const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; return Array.from({ length }, () => characters.charAt(Math.floor(Math.random() * characters.length))).join(''); }; const generateUUID = () => { let dt = Date.now(); return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { const r = (dt + Math.random() * 16) % 16 | 0; dt = Math.floor(dt / 16); return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); }; const utf8Encode = (str) => { return unescape(encodeURIComponent(str)); }; const sha256 = async (message) => { const msgBuffer = new TextEncoder().encode(message); const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer); const hashArray = Array.from(new Uint8Array(hashBuffer)); return hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); }; const generateMainBytesValue = async (uuid, hsum) => { const randomPart = generateRandomString(128); const combined = `${uuid}${hsum}${randomPart}`; const encoded = utf8Encode(combined); return await sha256(encoded); }; const setValues = async () => { const uuidElement = document.getElementById('uuid'); const mainBytesElement = document.getElementById('mainbytes'); const hsumElement = document.getElementById('hsum'); const uuidValue = generateUUID(); uuidElement.innerText = uuidValue; const hsumValue = hsumElement.value; const mainBytesValue = await generateMainBytesValue(uuidValue, hsumValue); mainBytesElement.value = mainBytesValue; console.log('UUID:', uuidValue); console.log('MainBytes:', mainBytesValue); }; // Set values on page load setValues(); })();