này nói nó tốt hơn nhiều so với tôi có thể http://www.obviex.com/Articles/CiphertextSize.aspx
Từ đó:
Trong trường hợp tổng quát nhất, kích thước của ciphertext có thể được tính như sau:
CipherText = PlainText + Block - (Khối chữ thường MOD)
trong đó CipherText, PlainText và Block cho biết kích thước của bản mã, văn bản thuần túy và khối mã hóa tương ứng. Về cơ bản, kích thước bản mã kết quả được tính như kích thước của bản rõ được mở rộng tới khối tiếp theo. Nếu padding được sử dụng và kích thước của bản rõ là một bội số chính xác của kích thước khối, một khối bổ sung chứa thông tin đệm sẽ được thêm vào.
Giả sử bạn muốn mã hóa số an sinh xã hội chín chữ số (SSN) bằng thuật toán mã hóa Rijndael với kích thước khối 128 bit (16 byte) và đệm PKCS # 7. (Với mục đích của hình minh họa, giả sử rằng dấu gạch ngang được loại bỏ khỏi giá trị SSN trước khi mã hóa, sao cho "123-45-6789" trở thành "123456789" và giá trị được coi là một chuỗi, không phải là số.) Nếu các chữ số trong SSN được định nghĩa là các ký tự ASCII, kích thước của bản mã có thể được tính như sau:
CipherText = 9 + 16 - (9 MOD 16) = 9 + 16 - 9 = 16 (bytes)
Lưu ý rằng nếu kích thước của giá trị thô là bội số chính xác của kích thước khối, một khối bổ sung chứa thông tin đệm sẽ được nối thêm vào bản mã. Ví dụ: nếu bạn muốn mã hóa số thẻ tín dụng gồm 16 chữ số (được định nghĩa là chuỗi ASCII 16 ký tự), kích thước của bản mã sẽ là:
CipherText = 16 + 16 - (16 MOD 16) = 16 + 16 - 0 = 32 (byte)
Nguồn
2011-10-26 18:47:52
FYI, xem http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts/ –
tôi không thể nhớ, và nó có thể giúp trả lời câu hỏi - bạn có đang truyền một loại luồng cơ bản tới CryptoStream hay là nó đang ghi trực tiếp vào một tệp không? –
Có một FileStream đọc tệp, CryptoStream nhận luồng đó, sau đó, CryptoStream được ghi vào một NetworkStream. Đó là lý do tại sao tôi cần phải biết kích thước để chia nó trong bộ đệm –