Шифрование Triple DES

241
12 декабря 2021, 14:40

Есть ключ зашифрованный Triple DES на C# 16 байт. Необходимо расшифровать в коде написанном на Java, но Triple DES на java из документации следует:

Keysize must be equal to 112 or 168

Вопрос это реально или нет? Необходимо расшифровать и зашифровать.

Answer 1

Ну все правильно.

  1. Ключ у TripleDES или 112 или 168 битов
  2. Размер блока 64 бита (шифрование ведется блоками по 64 бита)
  3. Исходный шифр 2 байта (128 бит)
  4. Отсюда следует что у вас есть 2 блока по 64 бита, следовательно там зашифрован ключ длиной 112 бит.

Поясняю: 112 бит дают 2 блока по 64 бита, из которых 64*2-112=16 бит заполнены согласно выбранному алгоритму выравнивания.

Вам нужно определить алгоритм выравнивания - обычно PKCS#5 или PKCS#7

Алгоритм сцепления блоков скорее всего ECB (на малом количестве блоков обычно не снисходят до CBC)

Попробуйте так:

Cipher c = Cipher.getInstance("TripleDES/ECB/PKCS5Padding");
READ ALSO
Будильники на Spring

Будильники на Spring

У меня есть объекты рассылки, в которых есть параметр времениВ это время они должны быть отправлены на e-mail пользователям

146
Maven не видит класс из другого модуля

Maven не видит класс из другого модуля

При сборке проекта Maven выдает следующие ошибки:

246
Patch сущности в REST Spring MVC

Patch сущности в REST Spring MVC

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

183