PROBANDO2

Obtener llave mediante las mayúsculas y contar clases M, Descifrar mensajes cifrados

// ==UserScript==
// @name         PROBANDO2 
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Obtener llave mediante las mayúsculas y contar clases M, Descifrar mensajes cifrados
// @author       Sebastián González
// @match        https://cripto.tiiny.site/
// @grant        unsafeWindow
// @require      https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.2.0/crypto-js.min.js#sha512-a+SUDuwNzXDvz4XrIcXHuCf089/iJAoN4lmrXJg18XnduKK6YlDHNRalv4yd1N40OKI80tFidF+rqTFKGPoWFQ==
// ==/UserScript==

(function() {
    'use strict';

    let mayusculasUnicas;

    // Función para obtener la llave
    function obtenerLlave() {
        const contenido = document.body.innerText;
        const regex = /(?:^|[.!?]\s)([A-ZÁÉÍÓÚÑ])/g;
        let matches;
        const mayusculasEncontradas = [];

        while ((matches = regex.exec(contenido)) !== null) {
            mayusculasEncontradas.push(matches[1]);
        }

        if (mayusculasEncontradas.length > 0) {
            mayusculasUnicas = mayusculasEncontradas.join('');
            console.log('La llave es:', mayusculasUnicas);
        } else {
            console.log('No se encontró la llave.');
        }
    }

    // Función para contar mensajes cifrados y descifrarlos
    function contarYDescifrarMensajes() {
        const divsConClasesM = document.querySelectorAll('div[class^="M"]');
        const cantidadDivs = divsConClasesM.length;

        const mensajesDescifrados = [];

        divsConClasesM.forEach((div) => {
            const mensajeCifrado = div.getAttribute('id');

            try {
                const mensajeDescifrado = CryptoJS.TripleDES.decrypt(
                    { ciphertext: CryptoJS.enc.Base64.parse(mensajeCifrado) },
                    mayusculasUnicas
                ).toString(CryptoJS.enc.Utf8);

                mensajesDescifrados.push(mensajeDescifrado);
            } catch (error) {
                console.error('Error al descifrar mensaje:', error);
            }
        });

        console.log(`Los mensajes cifrados son: ${cantidadDivs}`);
        console.log('Mensajes descifrados:', mensajesDescifrados);
    }

    // Llamar a ambas funciones al cargar la página
    window.addEventListener('load', () => {
        obtenerLlave();
        contarYDescifrarMensajes();
    });
})();