PureBasic

StartAESCipher()

Синтаксис

Result = StartAESCipher(#Cipher , *Key , Bits , *InitializationVector , Mode)

Описание


Инициализирует новый поток шифрования AES, где данные могут быть добавлены, с помощью функции AddCipherBuffer().

Параметры

#Cipher Номер идентифицирующий этот шифр. Чтобы автоматически сгенерировать это число можно использовать #PB_Any.
*Key Буфер, содержащий ключ для декодирования. Его размер зависит параметра 'Битов': 16 байтов для 128-разрядного шифрования, 24 байта для 196-разрядного и 32 байта для 256-разрядного.
Bits Параметр 'Bits' задаёт размер ключа, используемого при шифровании. Корректные значения 128, 192 и 256
*InitializationVector Параметр 'InitializationVector' это блок случайных данных, используемый для инициализации шифрования чтобы избежать уязвимости при декодировании (требуется только при использовании режима #PB_Cipher_CBC). Его размер зависит от параметра 'Bits': 16 байт для 128-битного шифрования, 24 байт для 196-битного и 32 байта для 256-битного.
Mode Этот параметр может быть комбинацией следующих значение (с помощью оператора '|'):
  #PB_Cipher_Decode: Поток используется для декодирования данных.
  #PB_Cipher_Encode: Поток используется для кодирования данных.

вместе с

  #PB_Cipher_CBC: Режим кодирования по умолчанию (Cipher Block Chaining). Требует '*InitializationVector'.
                  Рекомендуется как более надёжный, чем режим ECB mode.
  #PB_Cipher_ECB: Альтернативный режим (Electronic CodeBook, электронная книга кодов). 
          Он не использует ни случайное значение, ни сцепление шифрующихся блоков
          (каждый блок шифруется независимо), что делает его менее сильным, чем CBC.
          И он не должен использоваться для серьезного шифрования.

Возвращаемое значение

Возвращает значение #Cipher, если для этого параметра использовалось значение #PB_Any.

Комментарии

Новые буферы для кодирования или декодирования, могут быть добавлены с помощью функции AddCipherBuffer(). После завершении шифрования необходимо вызвать функцию FinishCipher(), для освобождения ресурсов.

Для получения дополнительной информации о AES, смотрите описание функции AESEncoder().

См. также

AddCipherBuffer(), FinishCipher(), AESEncoder(), AESDecoder()

Поддерживаемые OS

Все

<- OpenCryptRandom() - Оглавление Cipher - StartFingerprint()->