Разница между openSSL rsautl и dgst

Следующая команда генерирует подпись для входного файла:

openssl dgst -sha1 -sign privateKey.pem -out signature1 someInputFile 

Следующие команды также генерируют подпись для входного файла:

 openssl dgst -binary -sha1 someInputFile > digest openssl rsautl -sign -in digest -inkey privateKey.pem -out signature2 

Насколько я знаю, они должны создать RSA-подпись SHA1-дайджеста файла. Но они не генерируют одну и ту же подпись.

В результате подпись, сгенерированная с помощью метода 2, также не может быть проверена openssl dgst -verify .

Кто-нибудь знает, в чем разница, и как это можно преодолеть?

    Простой ответ заключается в том, что dgst -sign создает hash, ASN1 кодирует его, а затем подписывает кодированный ASN1 hash, тогда как rsautl -sign просто подписывает вход без hashирования или кодирования ASN1. Оба метода include входные данные на выходе вместе с сигнатурой, а не производят только подпись в качестве вывода. Вот сценарий Bash, который показывает разницу между openssl dgst -sign и openssl rsautl -sign .

     #!/bin/bash # @(#) Bash script demos difference between openssl rsautl and dgst signing # Usage: $0   # 1. Make an ASN1 config file cat >asn1.conf < 

    См. Мой комментарий выше к OP для кредитов.

    Первый создает подпись . Второй шифрует hash . Они не делают то же самое.

    Interesting Posts

    Intellisense в IntelliJ больше не работает

    Таймер обратного отсчета jQuery

    Почему всегда скорость Интернета делится?

    Как вы автоматически изменяете размер столбцов в элементе управления DataGridView? И разрешить пользователю изменять размеры столбцов в той же сетке?

    Несколько classов форм в джинго общих (classных) представлениях

    Автоматическая обработка файлов cookie с помощью OkHttp 3

    Раскадровка iPhone: сцена для портретной и пейзажной сцены

    Как вы пишете формулу Excel, которая вставляет определенное значение в другую ячейку?

    Проблемы с компиляцией: не удается найти crt1.o

    java.lang.IllegalStateException: Не удалось найти резервную копию для фабрики javax.faces.application.ApplicationFactory

    Какие причины и каковы различия между NoClassDefFoundError и ClassNotFoundException?

    Создайте дату с дневного месяца и года с помощью T-SQL

    Как отключить форматирование кода Eclipse для определенных разделов кода Java?

    Цветной вывод ls в соответствии с расширением файла

    Двойная загрузка в одно и то же время

    Давайте будем гением компьютера.