Compartilhar via


O tamanho de resposta padrão para instâncias criadas por TripleDES.Create foi alterado.

O valor padrão da propriedade SymmetricAlgorithm.FeedbackSize na instância TripleDES retornada por TripleDES.Create() foi alterado de 64 para 8 para facilitar a migração do .NET Framework. Essa propriedade, a menos que seja usada diretamente no código do chamador, é usada somente quando a Mode propriedade é CipherMode.CFB.

O suporte para o CFB modo foi adicionado primeiro ao .NET para a versão 5.0 RC1, portanto, somente os aplicativos .NET 5 RC1 e .NET 5 RC2 devem ser afetados por essa alteração.

Descrição da alteração

No .NET Core e nas versões anteriores de pré-lançamento do .NET 5, TripleDES.Create().FeedbackSize tem um valor padrão de 64. A partir da versão RTM do .NET 5, TripleDES.Create().FeedbackSize tem um valor padrão de 8.

Motivo da alteração

No .NET Framework, a TripleDES classe base usa como padrão o valor de FeedbackSize 64, mas a TripleDESCryptoServiceProvider classe substitui o padrão como 8. Quando a FeedbackSize propriedade foi introduzida ao .NET Core na versão 2.0, esse mesmo comportamento foi preservado. No entanto, no .NET Framework, TripleDES.Create() retorna uma instância de TripleDESCryptoServiceProvider, portanto, o valor padrão da fábrica de algoritmos é 8. Para .NET Core e .NET 5+, a fábrica de algoritmos retorna uma implementação não pública, que, até agora, tinha um valor padrão de 64.

A alteração do valor da TripleDES classe de implementação para 8 permite que os aplicativos escritos para o .NET Framework que especificaram o modo de criptografia como FeedbackSize, mas não atribuíram explicitamente a propriedade CFB, continuem a funcionar no .NET 5.

Versão introduzida

5,0

Aplicativos que criptografam ou descriptografam dados nas versões RC1 ou RC2 do .NET 5 fazem isso com CFB64, quando as seguintes condições são atendidas:

Para manter esse comportamento, atribua a FeedbackSize propriedade a 64.

Nem todas as TripleDES implementações usam o mesmo padrão para FeedbackSize. Recomendamos que, se você usar o modo de criptografia CFB em instâncias TripleDES, sempre atribua explicitamente o valor da propriedade FeedbackSize.

TripleDES cipher = TripleDES.Create();
cipher.Mode = CipherMode.CFB;
// Explicitly set the FeedbackSize for CFB to control between CFB8 and CFB64.
cipher.FeedbackSize = 8;

APIs afetadas