0 Pytanie: RijndaelManaged deszyfruj zaszyfrowany kluczem 8-bajtowym

pytanie utworzone w Wed, May 8, 2019 12:00 AM

Mam następny kod, który doskonale działa, szyfrując i deszyfrując w net framework nawet z nieprawidłowym kluczem dla RijndaelManaged, ale teraz w netCore nie działa, ponieważ potrzebuje 16-bajtowego klucza, chcę odtworzyć klucz, który biblioteka w net frameworks sprawia, że ​​z rozszerzeniem klucza następuje deszyfrowanie w aplikacji rdzenia sieci, ale teraz nie wiem jak

Znalazłem podobny problem, ale w PHP tutaj RijndaelManaged.CreateEncryptor key mówi „po prostu odetnij ostatnie 2 bajty”, ale czego? i jak uzupełniam resztę bajtów?

//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, tak, 128-bitowy algorytm szyfrowania WYMAGA klucza 128-bitowego. Jeśli nalegasz na użycie łańcucha jako klucza, najpierw przeprowadź go przez algorytm mieszania, a następnie wyjmij z niego 16 bajtów. Nadal masz WAY mniej niż 128 bitów entropii dla twojego szyfrowania.
    2019-05-08 16: 28: 17Z
  2. Jeśli chcesz, aby biblioteka była zgodna z twoim bieżącym kodem, czy próbowałeś zerować wypełnienie pozostałych 8 bajtów?
    2019-05-08 16: 29: 09Z
  3. Tak, potrzebuje klucza 128-bitowego, ale z jakiegoś powodu działa z kluczem 64-bitowym w bibliotece szkieletowej sieci z powodu „funkcji”, która rozszerza klucz, tak, próbowałem wypełnienie zerem ostatnich 8 bajtów i na początku również, ale to nie działa
    2019-05-08 18: 49: 10Z
  4. Inne opcje do wypróbowania to dwukrotne powtórzenie ciągu lub pobranie ostatnich 8 bajtów IV. Jeśli nie zadziałają, będziesz musiał ugryźć kulkę i zmienić stary kod /algorytm, aby działał poprawnie (ale stracisz kompatybilność z istniejącymi hasłami).
    2019-05-09 08: 31: 25Z
  5. Trochę badań później, a to może ci się przydać: docs.microsoft.com/en-us/dotnet/api/…
    2019-05-09 08: 38: 40Z
0 Answers                              0                         
źródło umieszczone tutaj