Хотя это не совсем ответ на ваш вопрос, я должен сказать:
Самостоятельная реализация алгоритмов шифрования в большинстве случаев является действительно плохой идеей.
Позвольте мне объяснить:
Криптография сложна. Мало кто понимает это достаточно хорошо, чтобы изобрести свои собственные алгоритмы, и даже они ищут помощи других, чтобы убедиться, что он не ломается за секунду.
Даже при использовании существующего алгоритма, который, как оказалось, достаточно хорош для своих намерений, это все равно плохая идея, потому что существует более чем достаточно возможностей для тонких ошибок, которые нарушают реализацию иначе безопасного алгоритма. Это случалось так много раз, что я потерял счет как часто.
И даже если вы действительно удачливы и усердны и добились идеальной реализации, это пустая трата времени и ресурсов, если вы не используете существующую реализацию, которая уже была разработана, протестирована и проверена.
И пару слов о DES, хотя я надеюсь, что вы знаете, что: Pure DES считается действительно слабым для сегодняшнего стандарта. Поэтому вы должны реализовать 3DES, что лучше.
Edit:
Хорошо, после всего этого разговора и после осознания того, что это, похоже, домашнее задание (спасибо за внимание), я немного погрузился в DES. Вот что я получил до сих пор:
DES - блочный шифр, работающий на 64-битных блоках. Существует несколько различных режимов работы . Они определяют, как чистый текст должен быть разделен на 64-битные блоки. Для некоторых режимов требуется padding , это означает, что вы заполняете последний блок данными, которые вы можете удалить после расшифровки зашифрованного текста. Абзац Padding в статье Wikipedia выше содержит описание того, как padding использовался в DES.
Так много для теории, как это сделать на Java ...
byte[] bytesOfString = clearTextString.getBytes();
Это дает вам массив байтов для строки, которую вы должны зашифровать. Остальное просто подсчитать и сложить ...
Надеюсь, этот пересмотренный ответ более полезен для вас.