Спосіб зберігання текстових даних. Частина 1steemCreated with Sketch.

in hive-145157 •  last month  (edited)

Безпечне зберігання текстових даних має важливе значення, особливо якщо ці дані містять особисту, фінансову чи іншу чутливу інформацію. Тема, яку я хочу обговорити, стосується абсолютно всього: зберігання банківських даних, паролів, ключів доступу, адреси коханки тощо. Оскільки ми всі тут ведемо блоги в системі блокчейн, не важко припустити, що йдеться також про безпечне зберігання сід-фрази. На мою думку, текст нижче скасує необхідність гравіювання 12 (або 24) слів ключа на сталевій пластині.

Зберігання текстових даних

AES (Advanced Encryption Standard) — це алгоритм симетричного шифрування, який використовується для захисту даних. В цьому я самоучка та багато років займаюся веб-розміткою і дизайном, програмуванням на PHP та трохи JavaScript. HTML — це не програмування, а розмітка. Тобто коди HTML не запускають виконувальний механізм сайту, а лише формують структуру та зовнішній вигляд. У JavaScript для роботи з AES використовуються сторонні бібліотеки, оскільки стандартні функції шифрування не вбудовані в мову.

Шифрування з AES передбачає, що одне й те ж саме секретне слово або ключ використовується як для шифрування, так і для розшифровки даних. Це робить його механізм симетричним, на відміну від асиметричних методів, де використовуються два різні ключі (публічний для шифрування і приватний для розшифровки).

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

Приклад шифрування та дешифрування тексту з використанням AES і бібліотеки CryptoJS:

  1. Підключення бібліотеки. Насамперед додаємо посилання на бібліотеку у свій HTML файл:
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
    
    
  2. Приклад шифрування і дешифрування:
    <p><strong>Розшифроване повідомлення:</strong> <span id="decryptedMessage"></span></p>
    
    <script>
    // Шифрування
    var message = "Текст для шифрування";
    var secretKey = "СекретнийКлюч";
    
    var encrypted = CryptoJS.AES.encrypt(message, secretKey).toString();
    
    // Виводимо зашифроване повідомлення на сторінку
    document.getElementById('encryptedMessage').textContent = encrypted;
    
    // Розшифрування
    var decrypted = CryptoJS.AES.decrypt(encrypted, secretKey);
    var originalMessage = decrypted.toString(CryptoJS.enc.Utf8);
    
    // Виводимо розшифроване повідомлення на сторінку
    document.getElementById('decryptedMessage').textContent = originalMessage;
    </script>
    

Зашифрований текст виглядає приблизно так:

Шифрування AES

Цей приклад демонструє шифрування тексту. До безпеки зберігання ключа потрібно ставитися з особливою серйозністю, оскільки відновити його можна хіба що методом брутфорсу (перебору паролів). Однак пароль не обов’язково має бути суперскладним, достатньо, щоб його знали лише ви. Наприклад, я іноді використовую як пароль індекс мого району, де я виріс. Це шестизначний номер, який змінився після розпаду Союзу, але я його запам'ятав на все життя (тоді ще не було електронної пошти).

Особисто я зберігаю зашифрований текст в інтернеті, в хмарному сховищі. Приклад скрипту для розшифрування — у цій статті ;-)

Дозволяю використання інформації з цієї статті виключно на свій страх і ризик.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!