Зашифровать целочисленное значение с помощью DES - PullRequest
1 голос
/ 05 августа 2011

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

Функция расшифровки также должна следовать этому понятию.

Я пытаюсь изменить код на Шифрование строки с помощью DES путем преобразования массива байтов в целое число вместо использования кодировки Base64. Однако функция дешифрования выдает исключение неправильного заполнения, поскольку преобразование целого числа в byte [] приводит к массиву из 4 байтов.

Есть ли другой алгоритм шифрования, который я могу использовать для достижения этой цели.

  • Меня не беспокоит слабость зашифрованного текста.

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

Если вы запускаете целочисленное значение через DES для получения другого целочисленного значения, и вас не волнует слабость текста шифра, то вы просто выполняете очень дорогую операцию хеширования. Вам лучше было бы генерировать случайное целое число в качестве ключа и поразрядно хранить экспоненту и случайное целое число. Это потребует наносекунд для вычисления и будет иметь точно такую ​​же безопасность.

1 голос
/ 14 октября 2011

Вы хотите посмотреть Формат сохраняющего шифрования . Для этого есть несколько методов, но в целом все они генерируют значение в том же домене, что и ваш ввод (т. Е. Целые числа, номера кредитных карт и т. Д.)

1 голос
/ 06 августа 2011

DES имеет 64-битный размер блока, поэтому, как правило, выходной результат шифрования 32-битного int будет 64-битным блоком.Будет проще зашифровать 64-битный long в другой 64-битный long.Используйте режим ECB, чтобы заполнение не было проблемой, или, по крайней мере, вы добавляете нулевые биты к передней части int, чтобы расширить его до 64 бит.* тогда предложение Джима превосходно.

...