My SQL Odszyfrowanie danych zaszyfrowanych przez EF Core

0

Dzień dobry,

Używam EF Cora do szyfrowania i deszyfrowania niektórych kolumn.

        var keyBase = System.Text.Encoding.UTF8.GetBytes("xxxxxxxxxxxxxxxxxxxxxxxx");
        var key = Convert.ToBase64String(keyBase);
        _provider = new AesProvider(System.Text.Encoding.UTF8.GetBytes(key));
        modelBuilder.UseEncryption(this._provider);

W celach testowych chciałbym napisać skrypt od odszyfrowania danych:

SET @keyBase = 'xxxxxxxxxxxxxxxxxxxxxxxx';
SET @encrypted_data = 'some encrypted data from column';

-- Decode the keyBase from Base64 encoding
SET @key = UNHEX(@keyBase);

-- Generate a random IV (Initialization Vector) or use a predetermined one if available
SET @iv = UNHEX(SHA2(UUID(), 128));

-- Decrypt the data using the key and IV
SET @decrypted_data = AES_DECRYPT(FROM_BASE64(@encrypted_data), @key, @iv);

-- Return the decrypted data
SELECT CAST(@decrypted_data AS CHAR) AS decrypted_data;

Niestety dostaję null-a

0

Coś tu jest pogmatwane, nie będę instalował My SQL żeby to przetestować ale:

  1. Przy szyfrowaniu po co najpierw zamieniasz teskt na bajty, potem bajty na base64 a potem znowu base64 na bajty? Nie zwiększasz w ten sposób entropii
  2. IV musi być takie same przy deszyfrowaniu jak przy szyfrowaniu, powinieneś to IV losować przy szyfrowaniu i dokleić do wiadomości, a potem przy odszyfrowaniu "odkleić" i użyć tego samego initialization vectora, inaczej to nie ma sensu. Perfekcyjnie IV powinno być różne przy każdej wiadomości ale możesz poćwiczyć na stałym IV bo jest tu dużo innych rzeczy które mogą nie współgrać

1 użytkowników online, w tym zalogowanych: 0, gości: 1