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

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

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

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

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

 我们可以用AL.exe的/algid命令行开关,或者应用于程序集上的System.Reflection.AssemblyAlgorithmIdAttribute定制特性来改变默认的散列算法.默认的算法为SHA-1算法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值