как я могу использовать шифрование aes-256 в postgrepsql?

#sql #postgresql

#sql #postgresql

Вопрос:

Я протестировал этот скрипт в Postgresql:

 select encode(encrypt('123456','F2388451B0954326','aes'),'BASE64');
 

Но это шифрование AES128. Как я могу использовать шифрование aes-256 в PostgreSQL?

Комментарии:

1. Использование «encrypt» явно не рекомендуется документами. Почему бы вместо этого не использовать pg_sym_encrypt, что упрощает выбор aes256?

Ответ №1:

Вы можете использовать расширение pgcrypto, установить его с помощью:

 create extension pgcrypto
 

теперь, после успешной установки pgcrypto, используйте функцию pgp_sym_encrypt

 select encode(pgp_sym_encrypt('123456','F2388451B0954326','compress-algo=1, cipher-algo=aes256'),'BASE64');
 

обратите внимание, что первый параметр ‘123456’ — это данные, второй параметр — пароль

надеюсь, что это ответ на ваш вопрос

Комментарии:

1. я использовал эту функцию раньше, но результат не тот, что при шифровании aes-256 в коде Java, в то время как я меняю ключ параметра функции на 32 байта, например ‘F2388451B0954326F2388451B0954326’, результат функции совпадает с результатом кода Java, так работает ли функция шифрования как aes-256, когда я использовать 256-битный ключ?

2. Это связано с тем, как работает шифрование aes-256, смотрите Здесь для получения дополнительной информации, но в основном, если зашифрованный текст (результат) может быть расшифрован как в java, так и в posgresql с одним и тем же паролем, это означает, что это действительный зашифрованный текст..