{}
run-icon
main.js
function toHex(value, length) { return value.toString(16).toUpperCase().padStart(length, "0"); } function sumNombre8(nombre) { let suma = 0; for (let i = 0; i < nombre.length; i++) { suma = (suma + nombre.charCodeAt(i)) & 0xFF; } return suma; } function generarSeriales(nombre) { const sum8 = sumNombre8(nombre); const seriales = []; for (let a = sum8 - 4; a <= sum8 + 4; a++) { if (a < 0 || a > 0xFF) continue; // Para que b sea entero, a debe ser múltiplo de 4 if (a % 4 !== 0) continue; const a2 = a * a; const numerador = a2 - 64; if (numerador < 0) continue; if (numerador % 16 !== 0) continue; const b = numerador / 16; const c = b + 8; // Ajuste a formato aa bbbb cccc if (b < 0 || b > 0xFFFF) continue; if (c < 0 || c > 0xFFFF) continue; const serial = toHex(a, 2) + toHex(b, 4) + toHex(c, 4); seriales.push({ nombre: nombre, sum8: toHex(sum8, 2), a: toHex(a, 2), b: toHex(b, 4), c: toHex(c, 4), serial: serial }); } return seriales; } // Ejemplo const nombre = "deurus2026"; const resultados = generarSeriales(nombre); if (resultados.length === 0) { console.log("No se han encontrado seriales válidos."); } else { console.log(`Nombre: ${nombre}`); console.log(`SUMNOMBRE (8 bits): ${resultados[0].sum8}`); console.log(""); for (const r of resultados) { console.log( `a=${r.a} b=${r.b} c=${r.c} -> Serial: ${r.serial}` ); } }
Output