PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Nie można odszyfrować za pomocą pgcrypto z AES-256-CBC, ale AES-128-CBC jest OK

MCRYPT_RIJNDAEL_256 nie jest AES-256. Jest to szyfr Rijndaela o rozmiarze bloku 256 (stąd błąd). AES jest podzbiorem szyfru Rijndaela używającego rozmiaru bloku 128 bitów i klucza rozmiary 128, 192 i 256 bitów. Znajduje to również odzwierciedlenie w rozmiarze IV.

Aby utworzyć zaszyfrowany tekst AES-256, możesz użyć MCRYPT_RIJNDAEL_128 z prawidłowym rozmiarem klucza (256 bitów to 32 bajty). _128 przyrostek wskazuje rozmiar bloku, który ma być użyty; nadal możesz go używać z dowolnym prawidłowym rozmiarem klucza 128, 192 lub 256 bitów.

Uważaj, że mcrypt - zwłaszcza podstawowa biblioteka C - nie jest już utrzymywany. Lepiej jest korzystać z bibliotek openssl lub nowszych kryptowalut.

Opakowania mcrypt i OpenSSL również z radością dopuszczą nieprawidłowe rozmiary kluczy, ostrzegając Cię tylko - jeśli masz szczęście. To oczywiście nie jest kompatybilne z żadną dobrze zdefiniowaną biblioteką AES.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rekurencyjne zapytanie Postgres z row_to_json

  2. Oracle do PostgreSQL:powody migracji

  3. Czy mogę wycofać już zatwierdzoną transakcję? (utrata danych)

  4. Widzisz i czyścisz pamięć podręczną/bufory Postgresa?

  5. Spring Batch - Nie można utworzyć tabel metadanych w Postgresie i załadować rzeczywistych danych do mysql