nuget - 有没有办法对给定的 Nuget 包进行校验和?
问题描述
我一直在寻找一种方法来检查文件是否未被篡改。Nuget 包有校验和吗?
解决方案
是的,NuGet 包确实有校验和。根据此链接,<packageId>.<packageVersion>.nupkg.sha512
包含 .nupkg 文件本身的哈希值。由于上传到 nuget.org 的包不久前开始进行 repo-signed,还有一个名为的单独文件.nupkg.metadata
,其中包含应用签名本身之前文件的哈希值。
然而,包含上述 2 个哈希的文件是在从 nuget.org 检索 .nupkg 文件并由 NuGet 客户端安装之后生成的,这有点让人无法检查下载的 .nupkg 是否在第一次被篡改地方。
那么如何保证文件的完整性呢?通过一个名为 的签名文件.signature.p7s
,它本身存储在 .nupkg 文件中。使用此文件中信息的方法是根据nuget.exe verify -all <nupkg_file>
上面的最新链接发出一个 (可以从此处下载 nuget.exe )。
以下是一个被篡改的文件的结果(对于测试,我使用了CommandLineParser NuGet 包并license.md
从 .nupkg 文件中删除了它的文件):
推荐阅读
- google-analytics - 搜索控制台显示我的网站信息,但谷歌分析不显示。我应该怎么办?
- rust - 返回对现有向量元素或新插入元素的引用
- ld - .data 部分之前无法解释的空内存地址
- image - 在 xlsx 中添加 PNG 的异常 - Apache POI 3.9
- mysql - 如何将我的 Amazon RDS MySql 数据库移动到 Heroku
- css - 如何仅以角度为输入文本组件的文本设置背景颜色
- c# - 此平台不支持 SqlClient
- javascript - 复杂的重复功能
- javascript - Google Maps Polygons 在 dragend 事件上移动
- html - 我如何为一组 SVG 制作动画,而不是一次只制作一个动画?