CLR读书笔记--第三章 共享程序集和强命名程序集
3.1 两种程序集 两种部署
1. CLR支持两种程序集: 弱命名程序集和强命名程序集;
两者的区别: 强命名的程序集使用一对发布者的公钥/私钥对进行了签名.它唯一的标识了程序集的发布者;
弱命名的程序集只能以私有的方式部署,强命名的程序集可以全局部署;
3.2 为程序集分配强命名
1. 一个强命名的程序集包括4部分重要属性用来对程序集进行唯一标识:
@1 一个文件名(不含扩展名); @2 一个版本号; @3 一个语言文化标识;@4 一个公钥;
2. ms使用标准的公钥/私钥加密技术,这样保证了程序集的唯一性;
3. 创建强命名程序集的步骤:
第一步: 使用Strong Name(SN.exe)来获取一个密钥;
第二步: 将原有程序集升级为强命名程序集;
3.3 全局程序集缓存
1. 全局程序集缓存GAC: 一个程序集要由多个应用程序访问,必须把它放到一个已知的目录中,--这个已知的位置就是GAC(Global Assembly Cache);
2. GAC目录是结构化的,应使用工具(GACUtil.exe)将程序集放到GAC中,不能将一个弱命名的程序集放到GAC中;
3. GAC中注册程序集的目的: 防止同名程序集覆盖;
3.4 在生成的程序集中引用一个强命名程序集
1. 对于不完整的路径,CSC.exe会尝试在以下目录中寻找程序集:
@1 工作目录;
@2 包含CSC.exe本身的目录;
@3 使用/lib编译器开关指定的目录;
@4 使用LIB环境变量的目录;
2. 安装..NET Framework时会安装两套程序集文件:
一套安装在编译器/CLR目录; 一套安装到一个GAC子目录;
3.5 强命名程序集能防篡改
1. 在安装强命名程序集到GAC时,系统会对包含清单的那个文件内容进行哈希处理,并将哈希值与PE文件中嵌入的RSA数字签名比较,如果一致就表明没有被篡改,系统还
会对其他文件进行哈希处理,有一个不一致就表明被篡改了
2. 强命名程序集如果安装在GAC之外,CLR在加载时会比较哈希值.
( ⊙ o ⊙ )! 看的稀里糊涂..不知道看的是什么东东...
转载于:https://www.cnblogs.com/ry123/archive/2012/11/26/2789887.html
CLR读书笔记--第三章 共享程序集和强命名程序集相关推荐
- 第 3 章 共享程序集和强命名程序集
3.1 节 两种程序集,两种部署 CLR 支持两种程序集:弱命名程序集(weakly named assembly,即无签名的程序集) 和 强命名程序集(strongly named assembly ...
- 共享程序集和强命名程序集(3):强命名程序集的一些作用
强命名程序集能防篡改 用私钥对程序集进行签名,并将公钥和签名嵌入程序集,CLR就可以炎症程序集未被修改或破坏.程序集安装到GAC时,系统对包含清单的那个文件的内容进行哈希处理,将Hash值与PE文件中 ...
- 《Linux Shell脚本攻略》读书笔记第三章 以文件之名
1.生成任意大小文件 dd [root@stone ~]# dd if=/dev/zero of=f1_dd bs=1M count=1 1+0 records in 1+0 records out ...
- 计算机系统导论第九章,计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新)...
计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新) 第三章 程序的机器级表示 3.1 历史观点 3.2 程序编码 1. 命令行 (1)编译 Linux> gcc -Og ...
- java虚拟机读书笔记 第三章 垃圾收集器和内存分配策略
java虚拟机读书笔记 第三章 垃圾收集器和内存分配策略 GC需要完成的三件事情:哪些内存需要回收.什么时候回收.如何回收 垃圾回收器在对堆进行回收前,首先要确定那些对象存活,哪些对象已经死去,判断的 ...
- Android群英传神兵利器读书笔记——第三章:Android Studio奇技淫巧
Android群英传神兵利器读书笔记--第三章:Android Studio奇技淫巧 这篇文章篇幅较长,可以使用版权声明下面的目录,找到感兴趣的进行阅读 目录 3.1 Android Studio使用 ...
- 《深入理解计算机系统》(CSAPP)读书笔记 —— 第三章 程序的机器级表示
本章主要介绍了计算机中的机器代码--汇编语言.当我们使用高级语言(C.Java等)编程时,代码会屏蔽机器级的细节,我们无法了解到机器级的代码实现.既然有了高级语言,我们为什么还需要学习汇编语言呢?学习 ...
- python第三章上机实践_《机器学习Python实践》读书笔记-第三章
<机器学习Python实践>,第三章,第一个机器学习项目 以往目录:橘猫吃不胖:<机器学习Python实践>读书笔记-第一章zhuanlan.zhihu.com 书中介绍了一 ...
- 《php开发典型模块大全》读书笔记 第三章 mysql数据库基础
第三章 mysql基础 show columns from table describe table alter table 修改表 rename table t1 to t2 整型 ...
- 《Linux内核设计与实现》读书笔记 第三章 进程管理
第三章进程管理 进程是Unix操作系统抽象概念中最基本的一种.我们拥有操作系统就是为了运行用户程序,因此,进程管理就是所有操作系统的心脏所在. 3.1进程 概念: 进程:处于执行期的程序.但不仅局限于 ...
最新文章
- 30个精美的模板,贺卡,图形圣诞素材
- Html5 绘制旋转的太极图
- highstock 只显示所有 不显示 月_小米34寸曲面显示器深度体验 办公体验极佳 但是还有个大弱点...
- jQuery中排除指定元素,同时选择剩下的所有元素
- java.io.eof_java.io.IOException: java.io.EOFException: Unexpected end of input stream错误
- android 获取弹窗的值,从弹出窗口调用的Activity 返回一个值_popupwindow_开发99编程知识库...
- iview-admin框架运行步骤
- emailjava中怎么校验_Java使用注解实现参数统一校验功能
- Nexus修改admin密码及其添加用户
- http://ju.outofmemory.cn/entry/307891---------TICK
- BM3D图像去噪算法原理及代码详解
- abaqus与python后处理_abaqus用Python批量后处理教程!如何从abaqus导出python
- 微信Java SDK开发文档
- 局域网唤醒(Wake On LAN)+树莓派实现远程设备唤醒
- 10个在工作中常用的表格函数
- 『论文笔记』目标追踪结合相关滤波器资料收集+机器学习基础知识补充!
- 02 python:赋值符;运算符;字符串操作
- 之前用Delphi随手写的软键盘SoftKeyBoard
- [JLOI2008]将军
- 华为消费者云的ServiceComb 微服务之旅
热门文章
- python的sorted函数和operator.itemgetter函数
- 网络和新媒体能申请计算机硕士吗,网络与新媒体专业可以报考公务员吗
- 算法案例之有效字母异位词
- C语言字符串函数(strcpy,strlen,strcat,stsstr,strchr,strcmp,memcpy,memmove)
- Vue+SpringBoot的微信登录
- 95后频频离职,是员工本人问题?
- Android View框架总结(七)View事件分发机制
- 华为鸿蒙ota真机测试,华为鸿蒙OS 2.0测试版继续推进:新增机型一览
- mysql 删除foreign key_MySQL-Foreign Key
- 接收xml参数_如何解决SpringMVC接收到的请求参数为乱码的问题