Одним из достоинств языка Go является наличие множества встроенных библиотек, таких, как библиотеки для обработки изображений, работы с сетью, шифрования и прочего. Сегодня мы разберем некоторые моменты работы с пакетом crypto
. Количество встроенных вариантов шифровния поражает - среди них есть следующие:
- aes
- des
- dsa
- ecdsa
- hmac
- md5
- rc4
- rsa
- sha1
- sha256
- sha512
- tls
- x509
Мы всего лишь рассмотрим на примерах использование некоторых шифров.
AES
Начнем с шифра AES. Следующий код показывает, как зашифровать текст длиной в 16 байт sensitive1234567
с использованием ключа key3456789012345
(тоже длиной в 16 байт), а затем расшифровать заново.
|
|
DES
Использование данного шифра ничем не отличается от предыдущего примера (стоит только заметить, что шифр работает с блоками длины 8 байт):
|
|
SHA1
Кроме алгоритмов шифрования, пакет crypto
содержит алгоритмы хеширования, например алгоритмы SHA:
|
|
Заключение
Пусть я рассмотрел только три алгоритма пакета (даже не рассмотрел, а просто привел примеры кода), однако и так мы можем убедиться в простоте использования пакета. Он может оказаться весьма полезным в работе с конфеденциальными данными, потому использование данного пакета весьма предпочтительно при разработке банковских или веб-систем.