Вставление объявления функции parens создает выражение, которое оценивает к анонимной функции в. Поэтому первое вводное оценивает к функции.
"пустые parens" в конце вызывают определенную функцию, таким образом, "//делают интересный материал" сразу выполняется.
Это - способ выполнить код на лету, также не допуская переменные в глобальную область видимости.
то, Что проиллюстрировано здесь, однако, не имеет никакого отношения к закрытиям - по крайней мере, не непосредственно. Закрытия о поддержании лексического контекста после того, как родительская функция уже вышла.
И строгие имена, и цифровые подписи используют криптографию с открытым ключом для предоставления свидетельств о origin сборки, чтобы вы могли применить политику безопасности , чтобы определить, какие разрешения предоставлены сборке .
Они различаются не своими техническими деталями, а тем, какие проблемы они предназначены для решения.
Целью строгого имени является исключительно обеспечение того, чтобы , когда вы загружаете сборку по имени, вы загружаете именно ту сборку, которую вы считаете вы загружаете . Это только намеренное назначение строгого имени. Вы говорите: «Я хочу загрузить Frobber версии 4, полученной от FooCorp». Механизм строгого имени гарантирует, что вы действительно загрузите именно эту DLL, а не другую сборку под названием Frobber, версия 4, которая пришла от Dr. Evil Enterprises.
Для этого все, что требуется, - это знать токен открытого ключа, связанный с закрытым ключом FooCorp. Как вы узнали, что токен открытого ключа - это полностью ваше дело. Нет инфраструктуры, которая могла бы помочь вам безопасно получать эту информацию. От вас просто ожидают, что вы каким-то образом узнаете, что это такое.
Цель цифровой подписи из сертификата издателя - установить проверяемую цепочку идентичности и доверия . Цепочка доверия идет от фрагмента кода неизвестного или неопределенного происхождения до «доверенного корня» - объекта, которому вы настроили свою операционную систему для доверия. Вы скачиваете код, и код имеет цифровую подпись с сертификатом от FooCorp. Вы проверяете сертификат, и в нем говорится: «Эта программа предоставлена FooCorp. VeriSign гарантирует точность этого сертификата». Поскольку VeriSign является одним из ваших доверенных корней, вы теперь уверены, что этот код действительно был получен от FooCorp.
Обратите внимание, насколько сложнее проблема, решаемая с помощью цифровых подписей. Мы не пытаемся просто определить, «связан ли этот кусок кода с этим именем или нет?» Вместо этого мы пытаемся определить, откуда взялся этот код, и кто ручается за существование компании, предположительно ответственной, и должны ли мы доверять этой компании?
Разница между строгими именами и цифровыми подписями подчеркивает сложность криптографии -основанная безопасность. Трудная проблема не в криптографии; это просто математика. Трудной проблемой является безопасное управление распределением информации о ключах и их связывание с правильными объектами. Сильные имена, поскольку они пытаются решить очень небольшую, но важную проблему, не имеют проблем с управлением ключами. Или, скорее, они навязывают вам, пользователю, проблему управления ключами. Цифровые подписи - это попытка автоматизировать безопасное распространение ключевой информации с помощью сертификатов, чтобы решить гораздо более сложные проблемы доверия и идентичности.
Это ясно?
(Отличный вопрос; это будет обсуждаться на ] мой блог 3 сентября.)
нет проблем с управлением ключами. Или, скорее, они навязывают вам, пользователю, проблему управления ключами. Цифровые подписи - это попытка автоматизировать безопасное распространение ключевой информации с помощью сертификатов, чтобы решить гораздо более сложные проблемы доверия и идентичности.Это ясно?
(Отличный вопрос; это будет обсуждаться на ] мой блог 3 сентября.)
нет проблем с управлением ключами. Или, скорее, они навязывают вам, пользователю, проблему управления ключами. Цифровые подписи - это попытка автоматизировать безопасное распространение ключевой информации с помощью сертификатов, чтобы решить гораздо более сложные проблемы доверия и идентичности.Это ясно?
(Отличный вопрос; это будет обсуждаться на ] мой блог 3 сентября.)
Как вы можете прочитать в этом предыдущем связанном вопросе , избежать вмешательства в сборку со строгим именем не так просто, как вы могли ожидать.
Цифровая подпись по сути является битом, который предотвращает подделку. После того, как сборка подписана, любые изменения сделают подпись недействительной, и clr будет знать, что ее не загружать.
Прочтите статью в википедии. Цифровые подписи предотвращают подделку любого цифрового документа. Не только сборки. Это объясняет это лучше, чем я когда-либо мог.
Эта запись блога Strong Naming vs Digital Signatures довольно хорошо объясняет это.
Я нашел интересное объяснение здесь . Публикация здесь для бумажного следа. Надеюсь, это может кому-то помочь.