Я использую DSA для создания подписи для двоичного большого двоичного объекта, и я пытаюсь выяснить, что я получу от использования CreateSignature (byte []) DSASignatureFormatter, а не просто использования CreateSignature DSACryptoServiceProvider (byte [])
Насколько я могу судить, единственное преимущество использования DSASignatureFormatter заключается в том, что я могу указать алгоритм хеширования с помощью SetHashAlgorithm (), а затем форматировщик позаботится о хешировании данных за меня. В сценарии DSACryptoServiceProvider я должен предварительно хешировать данные, прежде чем передавать их методу CreateSignature.
Что еще можно получить с помощью Formatter?





DSASignatureFormatter - это гораздо более ограниченный класс полномасштабного алгоритма шифрования. Он связан только с подписью полезных данных, а его инверсия (DSASignatureDeformatter) касается только проверки подписей.
Думаю, если вы однажды захотите переключиться на RSAPKCS1SignatureFormatter, вы сможете проделать всю работу с базовым классом и довольно легко переключиться.
AsymmetricSignatureFormatter и AsymmetricSignatureDeformatter - это простые классы, которые в любом случае было бы довольно легко кодировать и которые представляют собой другой уровень абстракции по сравнению с классами SymmetricAlgorithm.