Bagikan melalui


Nilai FeedbackSize default untuk instans yang dibuat oleh TripleDES.Create berubah

Nilai default untuk SymmetricAlgorithm.FeedbackSize properti pada instans yang TripleDES dikembalikan dari TripleDES.Create() telah berubah dari 64 menjadi 8 untuk membuat migrasi dari .NET Framework lebih mudah. Properti ini, kecuali digunakan langsung dalam kode pemanggil, hanya digunakan ketika Mode properti adalah CipherMode.CFB.

Dukungan untuk CFB mode pertama kali ditambahkan ke .NET untuk rilis 5.0 RC1, jadi hanya aplikasi .NET 5 RC1 dan .NET 5 RC2 yang harus terpengaruh oleh perubahan ini.

Deskripsi perubahan

Di .NET Core dan versi pra-rilis sebelumnya dari .NET 5, TripleDES.Create().FeedbackSize memiliki nilai default 64. Mulai dari versi RTM .NET 5, TripleDES.Create().FeedbackSize memiliki nilai default 8.

Alasan untuk berubah

Dalam .NET Framework, TripleDES kelas dasar default nilai FeedbackSize hingga 64, tetapi TripleDESCryptoServiceProvider kelas menimpa default ke 8. FeedbackSize Ketika properti diperkenalkan ke .NET Core di versi 2.0, perilaku yang sama ini dipertahankan. Namun, dalam .NET Framework, TripleDES.Create() mengembalikan instans TripleDESCryptoServiceProvider, sehingga nilai default dari pabrik algoritma adalah 8. Untuk .NET Core dan .NET 5+, pabrik algoritma mengembalikan implementasi non-publik, yang, hingga saat ini, memiliki nilai default 64.

Mengubah TripleDES nilai kelas FeedbackSize implementasi menjadi 8 memungkinkan aplikasi yang ditulis untuk .NET Framework yang menentukan mode cipher sebagai CFB tetapi tidak secara eksplisit menetapkan FeedbackSize properti, untuk terus berfungsi pada .NET 5.

Versi yang diperkenalkan

5.0

Aplikasi yang mengenkripsi atau mendekripsi data dalam versi RC1 atau RC2 .NET 5 melakukannya dengan CFB64, ketika kondisi berikut terpenuhi:

Untuk mempertahankan perilaku ini, tetapkan FeedbackSize properti ke 64.

Tidak semua TripleDES implementasi menggunakan default yang sama untuk FeedbackSize. Kami menyarankan agar jika Anda menggunakan CFB mode cipher pada TripleDES instans, Anda harus selalu secara eksplisit menetapkan FeedbackSize nilai properti.

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

API yang Terpengaruh