Partilhar via


AesCryptoServiceProvider.IV Propriedade

Definição

Obtém ou define o vetor de inicialização (IV) para o algoritmo simétrico.

public:
 virtual property cli::array <System::Byte> ^ IV { cli::array <System::Byte> ^ get(); void set(cli::array <System::Byte> ^ value); };
public override byte[] IV { get; set; }
member this.IV : byte[] with get, set
Public Overrides Property IV As Byte()

Valor da propriedade

Byte[]

O vetor de inicialização.

Exceções

Foi feita uma tentativa para definir o vetor de inicialização para null.

Foi feita uma tentativa para definir o vetor de inicialização para um tamanho inválido.

Comentários

A IV propriedade é definida automaticamente como um novo valor aleatório sempre que você cria uma nova instância de uma das SymmetricAlgorithm classes ou quando você chama manualmente o GenerateIV método . O tamanho da IV propriedade deve ser o mesmo que a BlockSize propriedade dividida por 8.

As classes derivadas da SymmetricAlgorithm classe usam um modo de encadeamento chamado CBC (encadeamento de blocos de criptografia), que requer uma chave e um vetor de inicialização para executar transformações criptográficas nos dados. Para descriptografar dados que foram criptografados usando uma das SymmetricAlgorithm classes, você deve definir a Key propriedade e IV a propriedade com os mesmos valores que foram usados para criptografia.

Para uma determinada chave secreta k, uma codificação de bloco simples que não usa um vetor de inicialização criptografará o mesmo bloco de entrada de texto sem formatação no mesmo bloco de saída de texto cifrado. Se você tiver blocos duplicados em seu fluxo de texto sem formatação, terá blocos duplicados no fluxo de texto de codificação. Se os usuários não autorizados souberem alguma coisa sobre a estrutura de um bloco de texto sem formatação, eles poderão usar essas informações para decifrar o bloco de texto cifrado conhecido e possivelmente recuperar sua chave. Para combater esse problema, as informações do bloco anterior são misturadas ao processo de criptografia do próximo bloco. Portanto, a saída de dois blocos de texto sem formatação idênticos é diferente. Como essa técnica usa o bloco anterior para criptografar o próximo bloco, um vetor de inicialização é necessário para criptografar o primeiro bloco de dados.

Aplica-se a