Я бы предложил AES-256 . На данный момент он нерушим и становится стандартом для надежного симметричного шифрования.
Также он полностью поддерживается Java (см. java.security и javax.crypto ). Кроме того, AES поддерживается многими бесплатными инструментами, вы можете использовать его, например, с OpenSSL в Unix.
AES256 сильно влияет на производительность, но это не будет проблемой при шифровании 30 строк / документов. (Если, конечно, их нет миллионов).
Вам также нужно будет принять решение о некоторых других спецификациях шифрования, таких как блочный режим и заполнение.
Вот мое предложение - это то, что я использовал до сих пор, когда мне требовалось сделать надежное шифрование с Java:
- Алгоритм шифрования: AES с использованием 256-битного ключа
- Режим блокировки: CBC (Цепочка блоков шифрования)
- Заполнение: PKCS5Padding