У меня есть код С++, который будет шифровать строку. Теперь я сделал то же шифрование. Некоторые из зашифрованных строк соответствуют. Некоторые из них не соответствуют одному или двум символам.
Я не могу понять, почему это происходит. Я запускал оба кода в режиме отладки, пока они не назовут их библиотеки, оба имеют один и тот же ключ, соль, iv строку, которая будет зашифрована.
Я знаю, что даже если однобайтное изменение дополнений сильно изменит зашифрованную строку. Но здесь я просто вижу один или два символа. Вот пример (жирным шрифтом между звездами является совпадение деталей)
java:
U2FsdGVkX18xMjM0NTY3OGEL9nxFlHrWvodMqar82NT53krNkqat0rrgeV5FAJFs1vBsZIJPZ08DJVrQ * Pw * yV15HEoyECBeAZ6MTeN + ZYHRitKanY5jiRU2J0KP0Fzola
С++:
U2FsdGVkX18xMjM0NTY3OGEL9nxFlHrWvodMqar82NT53krNkqat0rrgeV5FAJFs1vBsZIJPZ08DJVrQ * JQ * yV15HEoyECBeAZ6MTeN + ZYHRitKanY5jiRU2J0KP0Fzola
Я использую шифрование AES. провайдер SunJCE версии 1.6. Я попробовал сменить поставщика на Bouncy Castle. Даже тогда результат такой же.
Добавлен один вариант:
С++:
U2FsdGVkX18xMjM0NTY3O * я */BMu11HkHgnkx + dLPDU1lbfRwb + aCRrwkk7e9dy ++ MK +/94dKLPXaZDDlWlA3gdUNyh/FXV * из * STgl3QgpS0XU =
Java:
U2FsdGVkX18xMjM0NTY3O * D */BMu11HkHgnkx + dLPDU1lbfRwb + aCRrwkk7e9dy ++ MK +/94dKLPXaZDDlWlA3gdUNyh/FXV * j9 * STgl3QgpS0XU =
UPDATE:
В соответствии с комментариями я считаю, что шифрование 64-го уровня является виновником. Я использую Latin-1 char в обоих местах. Что-нибудь еще, что я могу проверить