0 Soru: RijndaelManaged şifre çözme 8 bayt anahtarla şifrelenmiş

tarafından oluşturulan soru Wed, May 8, 2019 12:00 AM

RijndaelManaged için geçersiz bir anahtar olsa bile net çerçevede şifreleme ve şifre çözme işlemlerini mükemmel şekilde yapan bir sonraki koda sahibim, ancak şimdi netCore'da 16 baytlık bir anahtar gerektirdiği için çalışmıyor net çerçevelerindeki kütüphane, net bir çekirdek uygulamasında şifresini çözmek için önemli bir genişleme yapar, ancak şimdi nasıl yapmalıyım

Benzer bir sorun buldum ancak PHP’de burada RijndaelManaged.CreateEncryptor anahtar genişletme , ancak bu “sadece son 2 baytı kes” diyor, peki ya ne? ve kalan baytları nasıl tamamlarım?

//Code tha works in the framework app
///8 bytes
_key = System.Text.ASCIIEncoding.UTF8.GetBytes("abcdefgh");

//16 bytes
_iv = System.Text.ASCIIEncoding.UTF8.GetBytes("abcdefghijklmnop");
_provider = new RijndaelManaged();
_provider.Mode = CipherMode.CBC;
_provider.KeySize = 128;
_provider.CreateEncryptor(_key, _iv)
    
0
  1. Um, evet, 128 bit şifreleme algoritması 128 bit anahtara ihtiyaç duyar. Anahtarınız olarak bir dize kullanmakta ısrar ediyorsanız, önce bir karma algoritma ile çalıştırın ve 16 baytınızı bunun çıktısından alın. Şifrelemeniz için hala 128 bit entropiden daha az WAY var.
    2019-05-08 16: 28: 17Z
  2. Bir kitaplığı geçerli kodunuzla uyumlu hale getirmek için kalan 8 baytı doldurmayı sıfır denediniz mi?
    2019-05-08 16: 29: 09Z
  3. Evet, 128 bitlik bir anahtara ihtiyaç duyuyor ancak bir nedenden ötürü net framework kütüphanesinde 64 bitlik bir anahtarla çalışıyor, çünkü anahtarı denedim "özellik" Sıfır ile son 8 bayt ve başında da doldurma, ancak işe yaramıyor
    2019-05-08 18: 49: 10Z
  4. Denenecek diğer seçenekler dizeyi iki kez tekrarlamak veya IV'ün son 8 baytını almaktır. Çalışmazlarsa, mermiyi ısırmanız ve eski kodu /algoritmayı doğru çalışması için değiştirmeniz gerekecektir (ancak varolan şifrelerle uyumluluğu kaybetmeniz gerekir).
    2019-05-09 08: 31: 25Z
  5. Daha sonra biraz araştırma yapın ve bu sizin için yararlı olabilir: docs.microsoft.com/en-us/dotnet/api/…
    2019-05-09 08: 38: 40Z
0 Yanıtlar                              0                         
kaynak yerleştirildi İşte