Захист інформації, алгоритм AES

maxweb -

Коли ми говоримо про захист інформації, одним із найнадійніших способів шифрування даних є використання алгоритму AES (Передовий стандарт шифрування), який широко застосовується у різних сферах, від фінансової до особистої безпеки.

Приклад включає HTML і JavaScript, бібліотека CryptoJS підключена. Тобто, скрипт є робочим, його потрібно лише зберегти у файл HTML і запустити.

Код:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>AES Шифрування тексту</title>

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>

<style>
body {
font-family: 'Arial', sans-serif;
background-color: #fff;
color: #333;
}
</style>

</head>

<body>

<div>
<h2>Шифрування тексту</h2>
<div><input id="inputKey" type="text" placeholder="Ключ" /></div>
<div><textarea id="inputText" placeholder="Текст для шифрування"></textarea></div>
<div><textarea id="encript_result" placeholder="Результат шифрування"></textarea></div>
<div><button id="encryptBtn">Зашифрувати</button></div>
</div>

<hr size="1" />

<div>
<h2>Розшифровка тексту</h2>
<div><input id="outputKey" type="text" placeholder="Ключ" /></div>
<div><textarea id="encryptedText" placeholder="Зашифрований текст"></textarea></div>
<div><textarea id="decript_result" placeholder="Результат розшифровки"></textarea></div>
<div><button id="decryptBtn">Розшифрувати</button></div>
</div>

<script>
    // Шифрування
    document.getElementById('encryptBtn').addEventListener('click', function() {
        var text = document.getElementById('inputText').value;
        var key = document.getElementById('inputKey').value;

        if (text.trim() !== "" && key.trim() !== "") {
            var encrypted = CryptoJS.AES.encrypt(text, key).toString();
            document.getElementById('encript_result').value = encrypted;
        } else {
            alert("Введіть текст та ключ для шифрування");
        }
    });

    // Розшифровка
    document.getElementById('decryptBtn').addEventListener('click', function() {
        var encryptedText = document.getElementById('encryptedText').value;
        var key = document.getElementById('outputKey').value;

        if (encryptedText.trim() !== "" && key.trim() !== "") {
            try {
                var decrypted = CryptoJS.AES.decrypt(encryptedText, key);
                var originalText = decrypted.toString(CryptoJS.enc.Utf8);
                
                if (originalText) {
                    document.getElementById('decript_result').value = originalText;
                } else {
                    alert("Неможливо розшифрувати текст. Перевірте правильність ключа та даних.");
                }
            } catch (e) {
                alert("Помилка при розшифровці: " + e.message);
            }
        } else {
            alert("Введіть зашифрований текст та ключ для розшифровки");
        }
    });
</script>

</body></html>