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

Функция cipher.NewCFBEncrypter

Функция cipher.NewCFBEncrypter создает объект для шифрования данных в режиме CFB (Cipher Feedback). В первый параметр мы передаем блочный шифр (реализующий интерфейс cipher.Block), во второй параметр мы передаем вектор инициализации (IV) длиной, равной размеру блока используемого шифра. Функция возвращает объект, реализующий интерфейс cipher.Stream, который используется для поточного шифрования данных.

Синтаксис

cipher.NewCFBEncrypter(block cipher.Block, iv []byte) cipher.Stream

Пример

Давайте создадим шифратор в режиме CFB для шифрования данных с использованием AES-256:

package main import ( "crypto/aes" "crypto/cipher" "fmt" ) func main() { key := []byte("01234567890123456789012345678901") // 32 bytes key plaintext := []byte("This is secret data") block, err := aes.NewCipher(key) if err != nil { fmt.Println("Error creating cipher block") return } iv := []byte("1234567890123456") // 16 bytes IV stream := cipher.NewCFBEncrypter(block, iv) ciphertext := make([]byte, len(plaintext)) stream.XORKeyStream(ciphertext, plaintext) fmt.Printf("%x", ciphertext) }

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

"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"

Пример

Давайте создадим шифратор и зашифруем несколько блоков данных, сохраняя состояние между вызовами:

package main import ( "crypto/aes" "crypto/cipher" "fmt" ) func main() { key := []byte("01234567890123456789012345678901") block, err := aes.NewCipher(key) if err != nil { fmt.Println("Error creating cipher block") return } iv := []byte("1234567890123456") stream := cipher.NewCFBEncrypter(block, iv) data1 := []byte("First part") data2 := []byte("Second part") ciphertext1 := make([]byte, len(data1)) ciphertext2 := make([]byte, len(data2)) stream.XORKeyStream(ciphertext1, data1) stream.XORKeyStream(ciphertext2, data2) fmt.Printf("%x %x", ciphertext1, ciphertext2) }

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

"e3b0c44298fc1c14 9afbf4c8996fb924"

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

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