2010-11-24 17 views
5

Şifrelenecek 15 basamaklı bir dizgim var.Şifreli dizeyi giriş dizesiyle aynı uzunlukta yapın?

.NET'in çeşitli şifreleme işlevlerini kullanmayı denedim ancak tüm şifreli dizelerim en az 24, 28 veya 32 uzunluğunda.

CipherMode.CTS 'i Padding ile duydum = Giriş uzunluğuyla aynı uzunluk çıktısını üreten Yok, ancak aynı sonucu elde edemiyorum. Blok boyutu, anahtar boyutu ve tuz boyutu ile oynadım.

Giriş dizgime 16 uzunluğunda yapmak için bir basamak eklemeye gerek yok.

Herkes bir çözüm bulabilir mi?

+1

rot13 nasıl? ;) –

+0

Jason muhtemelen şaka yapıyor ancak şifrelemenizin güçlü olması gerekmiyorsa, her çalıştırdığınızda aynı olması garantileyen bir baytlık bayt akışı kullanabilirsiniz ve XOR her bir byte'ını düz metinin byte'ından akış –

+0

Bunun için hangi şifreyi kullanmalıyım? Bir örnek var mı .. teşekkürler! – Unomono

cevap

3

ECB modunu kullanırsanız, girişi blok boyutunun sonraki katına kadar tamamlar ve daha sonra aynı boyutta çıktı üretir.

Hemen hemen her diğer mod, çıkışı bir blok girişten daha büyük yapan bir İlkleme Vektörünü (IV) içerir/kullanır (giriş, blok boyutunun bir sonraki katına yuvarlandıktan sonra tekrar).

Akış şifrelerini çoğu girişle tam olarak aynı boyutta çıktı üretir - ancak tipik şifreleme kitaplıklarında, akış şifreleri blok şifrelere göre çok daha az yaygındır. Bunun bir nedeni, anahtar dağıtımı akış şifreleriyle çok daha ciddi bir sorundur (bir akış şifresiyle aynı anahtarı iki kez kullanarak bir majör güvenlik deliği üretir).

2

Kod sözcüğü Format-preserving encryption'dur. Ne yazık ki herhangi bir .NET uygulamasından haberdar değilim (çerçeve kesinlikle yoktur).

İlgili konular