Member 12806413 Ответов: 3

Шифрование и дешифрование входных данных для создания буквенно-цифровой строки из 16-24 цифр


Есть ли какой-нибудь способ зашифровать все входные данные в 16-24 - символьную буквенно-цифровую строку и снова расшифровать ее в обычную строку в c#?

Что я уже пробовал:

Is there any way to encrypt the whole Input data into 16 to 24 character alphanumeric string and again able to decrypt it into normal string in c#?

Richard MacCutchan

У тебя уже есть ответ. Почему вы обновили этот вопрос?

3 Ответов

Рейтинг:
2

CPallini

Некоторые замечания:

  • Шифрование-это не сжатие. Если вы ищете способ уменьшить размер ваших данных, то вам следует искать алгоритмы сжатия.
  • Обычно алгоритмы шифрования (например, AES вы пометили свой вопрос ) производить двоичные данные. Вы можете представить такой двоичный вывод с помощью ASCII символы с помощью в base64[^] если вы хотите (это увеличит размер вывода).


Рейтинг:
1

OriginalGriff

Нет.

Вы не можете зашифровать данные в фиксированный размер вообще, и особенно не в небольшое количество битов: если бы вы могли, почему мы будем передавать фильмы в виде кусков по 10 ГБ, веб-страницы в виде огромных кусков "текста"? Мы просто зашифруем их до 24 символов Альфа - значения и отправим вместо этого. Почему мы должны хранить файлы на жестком диске в "raw input" вместо того, чтобы хранить значение 24 char и расширять его, когда нам это нужно? Подумайте об экономии средств!

Скорее наоборот: зашифрованные данные очень часто значительно больше, чем незашифрованный источник!

Вы, вероятно, думаете об алгоритмах MD5 и SHA, которые действительно генерируют выходные данные фиксированной длины, но это не алгоритмы шифрования, а алгоритмы хэширования, и выходные данные не могут быть преобразованы обратно для восстановления исходных входных данных (и это по замыслу).


Рейтинг:
0

Patrice T

Цитата:
Есть ли какой-нибудь способ зашифровать все входные данные в 16-24 - символьную буквенно-цифровую строку и снова расшифровать ее в обычную строку в c#?

Да, только если ввод не превышает 24 символов буквенно-цифровой строки.
Будьте осторожны, в utf-8 некоторые символы кодируются более чем на 8-битном символе.
Если ваш вопрос подразумевает изменение размера входных данных до менее чем 24 символов, то это сжатие. И ничто не может гарантировать заданный размер выходного сигнала.

В принципе, шифрование не изменяет размер входных данных или делает их больше с помощью блочного шифра, потому что входные данные расширяются до кратного размера блока.