2009-05-21 2 views
1

Цитата из Википедии: «Ток открытого ключа. Это 64-битный хэш открытого ключа, который соответствует закрытому ключу, используемому для подписи 1 сборки. сказал, что имеет сильное имя ». [Источник: http://en.wikipedia.org/wiki/.NET_assemblies]Уточнение относительно открытого ключа. NET Assembly

Это правильно? Я чувствую, что это не согласуется с приведенным ниже объяснением: «Подписание сборки включает в себя принятие хэша важных частей сборки, а затем шифрование хэша с помощью закрытого ключа. Подписанный хэш сохраняется в сборке вместе с открытым ключом «.

Является ли первая цитата правильной. Не могли бы вы объяснить процесс подписания простым языком.

EDIT: Мой вопрос заключается в том, является ли это общедоступным ключом, который хэшируется или является хэшем, зашифрованным с помощью ключа?

ответ

3

MSDN всегда ваш лучший (и почти неизменно совершенно точный) источник такого рода вещей. На странице на Creating and Using Strong-Named Assemblies:

Строгое имя состоит из идентичности сборки - его простой текст имя, номер версии, и культура информации (при наличии) - плюс открытый ключ и цифровой подписи. Он создается из файла сборки с использованием соответствующего закрытого ключа. (Файл сборки содержит манифест сборки, который содержит имена и хэши всех файлов, которые составляют сборку.)

Так Википедия, казалось бы отдаленно прав, но не говорит полный история там.

Эта страница MSDN также ссылается на некоторые статьи, в которых глубже говорится о подписании сильных имен .NET-сборок.

0

Ключ открытого ключа основан на ключе, используемом для подписи сборки, поэтому, если вы берете две сборки и подписываете их одним и тем же ключом, их токен открытого ключа будет таким же.

Однако их подпись (данные, добавленные в сборку процессом подписи) не будет одинаковой, поскольку она основана на содержимом сборки, а также на ключе.

Смежные вопросы