Decrypt Text

Decryption Form
$1function handleShortcuts(e) { if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') { document.getElementById('decryptButton').click(); } else if (e.key === 'Escape') { resetForm(); } } function showHelp() { const modal = document.getElementById('helpModal'); modal.classList.remove('hidden'); modal.style.display = 'flex'; } function hideHelp() { const modal = document.getElementById('helpModal'); modal.classList.add('hidden'); modal.style.display = 'none'; } function getParam(key) { const params = new URLSearchParams(window.location.search); return params.get(key); } window.onload = function () { document.addEventListener('keydown', handleShortcuts); const text = getParam('text'); const pw = getParam('pw'); if (text) document.getElementById('encrypted').value = decodeURIComponent(text); if (pw) document.getElementById('password').value = decodeURIComponent(pw); document.getElementById('encrypted').addEventListener('input', toggleDecryptButton); document.getElementById('password').addEventListener('input', toggleDecryptButton); toggleDecryptButton(); }; function toggleDecryptButton() { const enc = document.getElementById('encrypted').value.trim(); const pw = document.getElementById('password').value.trim(); document.getElementById('decryptButton').disabled = !(enc && pw); } function decryptText() { const status = document.getElementById('statusMessage'); status.textContent = ''; status.className = ''; try { const encrypted = document.getElementById('encrypted').value; const pass = document.getElementById('password').value; const bytes = CryptoJS.AES.decrypt(encrypted, pass); const plaintext = bytes.toString(CryptoJS.enc.Utf8); if (!plaintext) throw new Error(); document.getElementById('decrypted').value = plaintext; document.getElementById('output').classList.remove('hidden'); document.getElementById('decryptedContainer').classList.add('hidden'); // document.getElementById('copyDefault').focus(); showStatus('✅ Text decrypted and copied to clipboard.', 'status-success'); navigator.clipboard.writeText(plaintext); } catch { showStatus('❌ Decryption failed. Check your password or ciphertext.', 'status-error'); } } function toggleDecrypted() { const container = document.getElementById('decryptedContainer'); const button = document.querySelector('button[onclick="toggleDecrypted()"]'); const isHidden = container.classList.contains('hidden'); container.classList.toggle('hidden'); button.setAttribute('aria-expanded', isHidden); button.textContent = isHidden ? 'Hide Decrypted Text' : 'Display Decrypted Text'; if (isHidden) container.focus(); } function copyDecrypted() { const text = document.getElementById('decrypted').value; navigator.clipboard.writeText(text).then(() => { showStatus('📋 Text copied to clipboard.', 'status-success'); }); } function resetForm() { document.getElementById('encrypted').value = ''; document.getElementById('password').value = ''; document.getElementById('decrypted').value = ''; document.getElementById('output').classList.add('hidden'); document.getElementById('decryptedContainer').classList.add('hidden'); document.getElementById('decryptButton').disabled = true; document.getElementById('statusMessage').textContent = ''; } function showStatus(message, className) { const status = document.getElementById('statusMessage'); status.textContent = message; status.className = `${className} flash`; setTimeout(() => { status.textContent = ''; status.classList.remove('flash'); }, 5000); }