Каковы общие дополнения шифрования AES в C # .NET и Java - PullRequest
2 голосов
/ 07 мая 2009

Я хочу знать, какие режимы заполнения для шифрования AES распространены в Java и C # .NET

Спасибо Бапите

Ответы [ 3 ]

1 голос
/ 07 мая 2009

Нет, PKCS7, нули

Dotnet поддерживает эти 3, как и все провайдеры JCE.

Если вы ищете java <->. Net AES, я бы порекомендовал Bouncy Castle, у них есть бесплатные библиотеки.

http://www.bouncycastle.org/

0 голосов
/ 14 мая 2009

Я работал над классным проектом и выяснил некоторые детали трудного пути. Во-первых, Java поддерживает заполнение PKCS7 из коробки, но под другим именем. Это называется PKCS5. Некоторые программисты используют Bouncy Castle из-за ошибочного убеждения, что Java не поддерживает PKCS7, но поддерживает другой (более старый) тип заполнения. Это не должно иметь большого значения, за исключением того, что в Bouncy Castle обнаружились ужасные ошибки. Мой проект опирался на их реализацию AES. Хотя это работает, если вы шифруете все данные одновременно с помощью одного doFinal, блоки шифрования идут ужасно неправильно, и результат даже меняется в зависимости от размера буфера, используемого для передачи данных. Возвращение к реализации Sun дало правильные результаты с тем же кодом. Излишне говорить, что это стоило нам нескольких дней отладки.

0 голосов
/ 07 мая 2009

Алгоритмы дополнения пары описаны в Wikipedia . Я видел PKCS7, используемый в некоторых важных приложениях (например, клиент Oracle). Его очень просто реализовать, так что вам не придется беспокоиться, если какая-либо из платформ не поддерживает его «из коробки».

...