您的位置:首页 > 其它

第一部分 Microsoft.NET框架基本原理2----读《Microsoft.NET框架程序设计》

2007-07-02 11:01 295 查看
既然已经知道了怎样创建一个公钥/私钥对,创建强命名程序集就变得很容易了.只需把System.Reflection.AssemblyKeyFileAttribute特性的一个实例应用到我们的源代码中就可以了:

   [assembly:AssemblyKeyFile("MyCompany.keys")]

当编译器在源代码中遇到该特性时,编译器将打开其中的指定的文件(MyCompany.keys),用私有密钥对程序集进行签名,并将公有密钥嵌入到清单中。注意只能对包含清单的那个程序集文件进行签名,程序集的其他文件不能被显式地签名.

 下面是对程序集文件签名过程的一个详细解释:当生成一个强命名程序集时,该程序集的FileDef清单元数据表将包含组成该程序集的所有文件的一个列表。当每个文件的名称被加入到清单中时,该文件的内容也被转换成一个散列值,该散列值将和文件名一起存入FileDef表中。

 我们可以用AL.exe的/algid命令行开关,或者应用于程序集上的System.Reflection.AssemblyAlgorithmIdAttribute定制特性来改变默认的散列算法.默认的算法为SHA-1算法.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: