РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1245 of 1593 menu

Функция cipher.NewCBCEncrypter

Функция cipher.NewCBCEncrypter создает объект для шифрования данных в режиме CBC (Cipher Block Chaining). Первым параметром она принимает интерфейс cipher.Block, который представляет собой блочный шифр, например, созданный с помощью aes.NewCipher или des.NewCipher. Вторым параметром функция принимает вектор инициализации (IV) - байтовый слайс, размер которого должен соответствовать размеру блока используемого шифра. Функция возвращает интерфейс cipher.BlockMode, который предоставляет метод CryptBlocks для выполнения шифрования.

Синтаксис

cipher.NewCBCEncrypter(block cipher.Block, iv []byte) cipher.BlockMode

Пример

Давайте зашифруем данные с использованием алгоритма AES в режиме CBC:

package main import ( "crypto/aes" "crypto/cipher" "fmt" ) func main() { key := []byte("0123456789abcdef") iv := []byte("abcdefghijklmnop") plaintext := []byte("hello world, go!") block, err := aes.NewCipher(key) if err != nil { fmt.Println("Error:", err) return } encrypter := cipher.NewCBCEncrypter(block, iv) encrypted := make([]byte, len(plaintext)) encrypter.CryptBlocks(encrypted, plaintext) fmt.Printf("%x\n", encrypted) }

Результат выполнения кода:

"31af99f0ec5caf0f8f8b8cf20131cd20"

Пример

Давайте зашифруем данные с использованием алгоритма DES в режиме CBC:

package main import ( "crypto/cipher" "crypto/des" "fmt" ) func main() { key := []byte("01234567") iv := []byte("abcdefgh") plaintext := []byte("hello world") block, err := des.NewCipher(key) if err != nil { fmt.Println("Error:", err) return } encrypter := cipher.NewCBCEncrypter(block, iv) encrypted := make([]byte, len(plaintext)) encrypter.CryptBlocks(encrypted, plaintext) fmt.Printf("%x\n", encrypted) }

Результат выполнения кода:

"451146cf43143087"

Смотрите также

  • функцию cipher.NewCBCDecrypter,
    которая создает объект для расшифровки в режиме CBC
  • функцию cipher.NewCFBEncrypter,
    которая создает объект для шифрования в режиме CFB
  • функцию cipher.NewCTR,
    которая создает объект для шифрования в режиме CTR
  • функцию cipher.NewOFB,
    которая создает объект для шифрования в режиме OFB
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить