В чем разница между Libsodium и Javax crypto

#java #encryption #libsodium

#java #шифрование #libsodium

Вопрос:

Я не специалист по безопасности или криптографии. Я хочу выполнить шифрование при взаимодействии моего клиента с сервером в системе RESTful api.

В настоящее время я использую javax crypto и инициализирую Ciper for AES с AES/GCM/PKCS5Padding помощью для шифрования данных и RSA с RSA/ECB/OAEPWithSHA-256AndMGF1Padding помощью для шифрования iV и Symmetric key с помощью открытого ключа. Это хорошо работает для меня.

Я еще немного покопался в других библиотеках шифрования и нашел Libsodium or NaCl.

Я попытался найти какое-либо сравнение между ними, и я не могу его найти. Это потому, что я пытаюсь сравнить яблоки с апельсинами?

Должен ли я продолжать javax crypto или я должен переключиться на sodium ? Какие преимущества sodium дает значение по умолчанию javax crypto ?

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

1. Поддерживает ли NaCl Java? С этой страницы кажется, что только C и C : — nacl.cr.yp.to/features.html

2. В maven есть libsodium и jnacl

3. libsodium пытается предоставить криптоинтерфейсы, которые являются достаточно высокоуровневыми и с которыми сложно выстрелить себе в ногу. Java crypto более низкого уровня и до краев заполнен ножными пушками.

4. @PresidentJamesK. Полк, ты можешь подробнее рассказать об этом? Например, если мы рассматриваем алгоритмы шифрования как блоки lego, все, что нам нужно сделать, это собрать воедино блоки, чтобы создать поток с java crypto (например, сгенерировать iv, сгенерировать спецификацию gcm, сгенерировать ключи и т. Д.). Но с libsodium нам все равно нужно предоставить одноразовый номер и ключи.

5. Использование «внешних» библиотек может быть полезно при «кроссплатформенной криптографии» (например, между Java и C / C ), поскольку у вас одинаковая основа для ваших методов и данных. Если вы остаетесь в Java, JCE является хорошей отправной точкой.