Да, пакеты NuGet имеют контрольную сумму. Согласно эта ссылка , <packageId>.<packageVersion>.nupkg.sha512
содержит га sh самого файла .nupkg. Поскольку пакеты, загруженные на nuget.org , начали подписываться репо некоторое время go, существует также отдельный файл с именем .nupkg.metadata
, который содержит га sh файла до самой подписи. apply.
Файлы, содержащие вышеупомянутые 2 хэша, однако, генерируются после .nupkg-файл извлекается из nuget.org и устанавливается клиентом NuGet, что делает невозможным проверку что скачанный файл .nupkg не был подделан.
Как обеспечивается целостность файлов? Через файл подписи с именем .signature.p7s
, который сам хранится в файле .nupkg. Чтобы использовать информацию в этом файле, введите nuget.exe verify -all <nupkg_file>
согласно последней ссылке выше (nuget.exe можно загрузить с здесь ).
Вот как получается результат выглядит как файл, который был подделан (для теста я использовал пакет CommandLineParser NuGet и у него был удален файл license.md
из файла .nupkg):