#java #delphi
#java #delphi
Вопрос:
Я пытаюсь выполнить расшифровку строки на JAVA, зашифрованной в Delphi с помощью DCPcrypt. DCPcrypt использует алгоритмы хэширования и пользовательский ключ для инициализации, затем алгоритм шифрования. Возможно ли расшифровать это в JAVA, используя криптографическую архитектуру Java ™ или другую криптографическую библиотеку JAVA? Если нет, имеете ли вы представление о том, какая комбинация библиотек в JAVA и Delphi позволяет получать одинаковые результаты для дешифрования и шифрования любой строки?
Комментарии:
1. Я бы просто получил исходный код для DCPcrypt и перенес код дешифрования на Java
2. большинство алгоритмов DCPcrypt, похоже, являются стандартами, поэтому JCA JCE уже должны иметь это
3. Некоторые алгоритмы одинаковы, но ключ генерируется по-разному, что делает окончательное шифрование различным между JCA и DCPcrypt
Ответ №1:
Попробуйте Chilkat Android и Chilkat Delphi:https://www.chilkatsoft.com
Единственное, что вам нужно сделать, чтобы заставить примеры Chilkat для Delphi и Android выдавать точно такие же зашифрованные строки, — это изменить схему заполнения на 4. В исходном примере Android схема заполнения равна 0, и это приводит к разным конечным байтам. Стоит отметить, что в примерах Delphi и Java вообще нет проблем.
Теперь, когда вы получили ответ и потратили на это неделю, я могу сказать вам, что не работает.
Попытка смешать сообщения 3DES, независимо от того, используете ли вы SHA1 или MD5 в качестве пароля, между JCE JCA и Delphi Encryption Compendium, не сработает. Для начала, DEC MD5 — это дерьмо. Вам лучше использовать хэш-класс Indy MD5. Очень жаль, что версия Indy, которая поставляется с XE, не включает шифрование, потому что их хэш-класс MD5 безупречен и прост в использовании.
Lockbox не хотел играть красиво с шифрованием Java. В таком случае, возможно, я настолько перегорел на DEC, что потерял всякое терпение. Опять же, я потратил целую неделю, весь день и всю ночь, пытаясь заставить различные части работать. Я так и не добрался до DCP. Следующее, что я попробовал, был Chilkat.
С помощью Chilkat я скачал пробные версии и установил их, запустил примеры, и все это заработало прямо из коробки. Выполнено.