pgp_sym_encrypt postgres проблема с перфомансом - PullRequest
0 голосов
/ 21 июня 2020

Я использую postgres 12 с pgp_sym_encrypt. Оно работает. Но шифрование столбца в очень большой таблице занимает несколько дней. У кого-нибудь еще есть опыт ускорения pgp_sym_encrypt? Я вставляю / выбираю в новую таблицу, чтобы избежать замедления и обновления на месте. Нет предложения where, на самом деле не так много для настройки, что я вижу.

Например, вытащить 10 000 строк занимает 35 секунд. выберите encode (pgp_sym_encrypt (col1, 'KEY', 'cipher-algo = aes256'), 'hex') as col1 из предела таблицы 10000

Чтобы вытащить 10000 строк без функции, требуется всего миллисекунды. выберите col1 из tablea limit 10000

Имеется миллиард строк. Я думаю, что на шифрование этого столбца в таблице уходит 972 часа.

1 Ответ

2 голосов
/ 21 июня 2020

PGP использует намеренно медленное хеширование (хотя и не такое медленное), чтобы усложнить «перебор» слабых паролей. Вы можете избавиться от этого или ослабить его, изменив s2k-mode или s2k-count. Конечно, вам следует хорошенько подумать, прежде чем намеренно ослабить собственное шифрование.

pgp_sym_encrypt(col1, 'KEY', 'cipher-algo=aes256, s2k-mode=1')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...