Я работаю над программой шифрования C#, и я в значительной степени с ней справился.C# string encoding using ToBase64String
Он шифрует и расшифровывает строку, которую я передаю в качестве аргумента.
Единственная проблема заключается в том, что когда я сравниваю эквивалентную программу шифрования Java, я замечаю, что C# преобразует шестнадцатеричные символы специальных символов.
Есть ли способ, которым я могу сказать программе не конвертировать специальные символы и просто представлять их как шестнадцатеричные?
Ниже приведен пример
Java:
4g8LAQXy%2B1M%3D
C#:
4g8LAQXy+1M=
Как вы можете видеть, '+'
в шестнадцатеричном является 2B
и '='
в гекс 3D
.
Я надеюсь, что вы не используете Base64 в качестве схемы шифрования – DGibbs
% не должна появляться на выходе Base64, результат Java выглядит URL закодирован? От куда это? –
Чтобы пометить на @DGibbs, Base64 не шифрует - это кодирование. Base64 не лучше открытого текста. Просто хочу убедиться, что это было ясно. – longofest