Токен открытого ключа - это просто хэш открытого ключа . Здесь для информация .
UPDATE
Зачем нам нужен открытый ключ?
Поскольку сборка может быть подписана, а подписанные сборки будут содержать открытый ключ. При загрузке DLL .NET будет использовать открытый ключ для проверки сборки на соответствие подписи. Подпись может быть сгенерирована только с использованием закрытого ключа, а сам открытый ключ может быть использован для проверки подписи.
Этот процесс гарантирует, что сборка не была нарушена.
Из CLR через C #:
Подписание сборки закрытым ключом
гарантирует, что держатель
соответствующий открытый ключ произвел
сборка. Когда сборка
установлен в GAC, система
хэширует содержимое файла
содержит манифест и сравнивает
значение хэша с цифровым RSA
значение подписи, встроенное в PE
файл (после подписания его с
открытый ключ). Если значения
идентичны, содержимое файла не имеет
был подделан, и вы знаете, что
у вас есть открытый ключ, который
соответствует частному издателю
ключ. Кроме того, система хеширует
содержание другого собрания
файлы и сравнивает значения хеш
с хэш-значениями, хранящимися в
Таблица FileDef файла манифеста. Если есть
значения хеша не совпадают, в
хотя бы один из файлов сборки имеет
был подделан, и сборка
не удастся установить в GAC.
ОБНОВЛЕНИЕ 2
Зачем нужен открытый ключ token ? Поскольку открытый ключ слишком большой, чтобы с ним работать (опять же из CLR visa C #):
Размер открытых ключей делает их
Трудно работать с. Делать вещи
проще для разработчика (и для завершения
пользователи тоже), токены были
создано. Токен открытого ключа
64-битный хэш открытого ключа.
Переключатель -tp SN.exe показывает общедоступный
ключевой токен, соответствующий
полный открытый ключ в конце его
выход.
Потому что открытые ключи такие большие
цифры, и одна сборка может
ссылки на многие сборки, большой
процент от полученного файла
общий размер будет занят
информация открытого ключа. Сохранить
пространство для хранения, Microsoft хэширует
открытый ключ и занимает последние 8 байтов
хешированной стоимости. Эти уменьшены
значения открытого ключа - известные как открытый ключ
токены - это то, что на самом деле хранится в
таблица AssemblyRef. В общем,
разработчики и конечные пользователи увидят
Значения токена открытого ключа намного больше
часто, чем полный открытый ключ
ценности. Обратите внимание, однако, что CLR
никогда не использует токены открытого ключа, когда
принятие решений о безопасности или доверии
потому что возможно, что несколько
открытые ключи могут хешировать в один
токен открытого ключа.