Извлечь открытый ключ из закрытого ключа в C#
Я использовал sn.exe
генерировать пару ключей (закрытый и открытый ключ). Я извлекаю открытый ключ из закрытого ключа следующим образом:
sn -p keyPair.snk publicKey.snk
Я читаю его с помощью C# и сохраняю его в базе данных как двоичный файл для шифрования моих данных.
Есть ли способ извлечь открытый ключ из закрытого ключа в C# без использования sn.exe
?
ПРИМЕЧАНИЕ: я хочу открытый ключ как byte
сравнить его с тем, что я храню в своей базе данных.
1 ответ
Есть ли способ извлечь открытый ключ из закрытого ключа в C# без использования sn.exe?
Удивительно сложно это сделать, но это возможно; Я так и сделал.
Что вам нужно сделать, это p/invoke для StrongNameGetPublicKey в mscorwks.dll.
Я читаю его с помощью C# и сохраняю его в базе данных как двоичный файл, чтобы использовать для шифрования моих данных
Это очень плохая идея. Цель открытого ключа со строгим именем - не шифровать ваши данные! Цель открытого ключа со строгим именем состоит в том, чтобы ваши клиенты убедились, что сборка, которую вы им дали, была написана вами. Если вы используете открытый ключ для чего-либо, кроме этой задачи, вы делаете что-то очень, очень неправильно, и вам следует немедленно прекратить это делать.
Сильные имена используют шифрование, но они не являются технологией шифрования; они представляют собой технологию создания доказательств для оценки политики безопасности доступа к коду.