С шифрованием AES

Шифрование — это, я думаю, самая важная тема в мобильной разработке для предотвращения реверс-инжиниринга, кражи конфиденциальных данных пользователя в настоящее время. Иногда его можно игнорировать из-за приоритетов разработки. Существует множество способов защиты конфиденциальных данных пользователя, таких как; сквозная защита с типом шифрования, закреплением SSL, игнорированием неизвестного незащищенного (HTTP) соединения и т. д.

В этом рассказе я объясню, как реализовать сквозную защиту на примере типа шифрования.

Предположим, что у нас есть одноразовый пароль для аутентификации в приложении, указав поставщика SMS. Мы выбираем шифрование AES, чтобы обеспечить двустороннее шифрование.

АЕС

Он известен как расширенный стандарт шифрования. Есть два параметра для использования AES — с именами key, iv (вектор инициализации). Размер ключа может быть 128/196/256 бит. Размер iv составляет 126 бит. В этом примере мы выбираем 256-битный ключ, 126-битный ключ iv. Давайте сгенерируем случайным образом два параметра как

Затем нам нужно импортировать стороннюю библиотеку с именем CryptoSwift через менеджер зависимостей в наш существующий проект. Давайте воспользуемся диспетчером пакетов Swift.

Выберите проект и перейдите к параметрам Package Dependencies в проекте.

Нажмите кнопку +.

Скопируйте и вставьте приведенный ниже URL-адрес в строку поиска.

Настройте версию библиотеки.

"https://github.com/krzyzanowskim/CryptoSwift.git"

Нажмите кнопку Добавить пакет в нижней части окна.

Теперь давайте создадим файл расширения, чтобы определить как шифрование, так и дешифрование.

Шифрование

В методе файла расширения encryption сначала нам нужно преобразовать данный код в данные, используя utf8, после чего с заданным ключом и параметром iv нам нужно использовать инициализацию AES с ключом, iv и параметром заполнения. . После этого приведите его к данным и преобразуйте в hexadecimalString.

Расшифровка

Сначала получите данные от hexadecimalString, чтобы использовать метод расшифровки AES. После этого инициализируйте его в новой строке с параметрами данных и кодирования.

С помощью этого расширения мы можем легко шифровать одноразовые пароли от провайдера SMS к веб-сервису.

Это все на данный момент. Мы видим, что шифрование конфиденциальных данных пользователя — это одноразовый пароль с шифрованием AES для отправки в веб-сервис.

Я написал стороннюю библиотеку для обработки пользовательских данных с шифрованием. Вы можете использовать или внести свой вклад.