数字签名与强命名程序集有什么关系?我读到说强命名程序集带有公钥和数字签名。
根据维基百科上的《程序集(CLI)》文章:
“对程序集进行签名涉及对程序集的重要部分进行哈希运算,然后用私钥对哈希值进行加密。签名后的哈希值与公钥一起存储在程序集中。公钥将解密签名后的哈希值。当CLR加载一个强命名程序集时,它会从程序集生成一个哈希值,然后将其与解密后的哈希值进行比较。如果比较成功,意味着文件中的公钥(因此也是公钥标记)与用于签名程序集的私钥相关联。这意味着程序集中的公钥是程序集发布者的公钥,从而阻止了伪造攻击。”
上述信息准确吗?它没有提到数字签名。我找不到一个解释程序集如何签名、如何验证签名以及如何消除黑客攻击可能性的MSDN页面。我想了解更多关于这些方面的信息,希望能对其整体工作原理有一个大致的了解。
根据维基百科上的《程序集(CLI)》文章:
“对程序集进行签名涉及对程序集的重要部分进行哈希运算,然后用私钥对哈希值进行加密。签名后的哈希值与公钥一起存储在程序集中。公钥将解密签名后的哈希值。当CLR加载一个强命名程序集时,它会从程序集生成一个哈希值,然后将其与解密后的哈希值进行比较。如果比较成功,意味着文件中的公钥(因此也是公钥标记)与用于签名程序集的私钥相关联。这意味着程序集中的公钥是程序集发布者的公钥,从而阻止了伪造攻击。”
上述信息准确吗?它没有提到数字签名。我找不到一个解释程序集如何签名、如何验证签名以及如何消除黑客攻击可能性的MSDN页面。我想了解更多关于这些方面的信息,希望能对其整体工作原理有一个大致的了解。