强名称程序集(strong name assembly)——为程序集赋予强名称




         引言

                 在曾经的项目开发中,在程序集中见到过一个后缀为*.snk的文件。当时看这个文件的图标。感觉可能是企业内部保护版权啥的一种方式。



  一,强程序集攻克了哪些问题?


1,唯一标识一个程序集

2,放置程序集被仿冒和被篡改。

3,能够部署到全局程序集缓存(GAC:GlobalAssembly Cache)中;在将强名称程序集不熟在GAC其中以后,强名称程序集也能够称为共享程序集(shared assembly



二,强名称与GAC

        

强名称:

定义了一个规则,不单单以文件名称来区分程序集,这个规则就是强名称。

 

GAC

定义一个特殊的目录,这个目录能够识别这样的规则。而且同意文件名称同样的文件存在,这个特殊的目录就是GAC


三,为程序集赋予强名称


         打开VS 开发者命令提示工具:





              首先,我们来创建公钥私钥文件。使用 sn -k命令:


             


         然后我们会发如今此目录下创建LHC.snk成功:


           

须要注意的地方:

1。每次调用sn时候,创建的私钥/密钥对文件都不同样,不仅自己的计算机每次生成的不同,其它全部计算机生成的也不同样。

2。关于这个文件的命名。假设是个人。能够以自己的名字命名。假设是团队。。组织火公司,能够以组织名称来命名。

3,在大多数情况下,个人和组织仅仅须要一个snk文件就能够了。以后创建强名称的时候,都使用这个snk文件。因为会使用snk文件的私钥对强名称程序集进行签名,因此这个文件必须严密保护。

 

上面创建的LHC.snk里面既包括公钥。也包括私钥。

公钥能够使用sn.exe查看。可是私钥无法查看。




    假设须要查看公钥的话。能够使用 sn -p命令:


    


      之后使用sn -tp命令查看*.pk文件:


     




     创建好这个公钥私钥文件之后,我们就能够使用它来标识程序集的唯一性了。



     在须要设置的程序集中,为此程序集设置签名属性:





        



       保存之后再观察此程序集,会发现多出来一个文件:



      







转载于:https://www.cnblogs.com/yfceshi/p/6938230.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何成为一名合格的数据分析师

“21世纪什么最贵,人才”,在目前大数据时代下,什么最难找,什么最贵,实现数据价值的人,数据分析师。 但是对于数据分析师的认识,比较极端,但对数据分析师价值的认识正在回归理性。很多…

【ffmpeg for wince】音视频编解码多平台移植(for window/wince))ffmpeg

from: http://www.cnblogs.com/windwithlife/archive/2009/05/31/1492728.html 终于完成了了第二个Client side原型(for Wince),其中花掉我最多时间的就是ffmpeg的对WINCE的移植。其中有大半时间是由于网上的一些不完整及不正确信息所误导,但…

Java 重写(Override)与重载(Overload)

重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。在面…

银联pos小票word模板_商家pos机刷卡必须知道的知识

相信很多卡友伙伴或者商铺店家都装有pos机,然后一般pos机都没有使用说明书,更没有结合刷卡方法在内的秘籍。今天我就分享下刷卡必须知道的一些知识。刚刚办理pos机的当天一定要注意:使用之前呢,务必核对一下基本信息,例…

《Ext JS权威指南》——2.4节关于Ext.onReady

2.4 关于Ext.onReady 代码为什么写在Ext.onReady中,而不是在body中添加一个onload事件并在onload事件中运行呢?主要原因是Ext.onReady在DOM模型加载完毕后即可进行操作,而无需像onload事件那样,等待页面的所有资源都加载完毕后才…

git push 提交时显示 Empty reply from server的解决办法

输入 git fetch origin --prune 参考链接:https://stackoverflow.com/questions/28364023/gits-error-on-push-empty-reply-from-server 转载于:https://www.cnblogs.com/team42/p/6941678.html

转]移动视频监控(1)---项目综述

对于市场上的视频监控系统,大家都有一定的了解,就是视频采集,经过无线/有线发送到服务或代理,客户从服务或代理上得到视频/音频流。不复杂。 对于不远的将来,3G,4G的到来,对移动的业务有一个推动…

java 空接口_学Java,java接口搞明白了吗?大牛让你一文搞清楚

前言对于面向对象编程来说,抽象是一个极具魅力的特征。如果一个程序员的抽象思维很差,那他在编程中就会遇到很多困难,无法把业务变成具体的代码。在 Java 中,可以通过两种形式来达到抽象的目的,一种是抽象类&#xff0…

Check Point CEO:“我们正在积极寻找收购目标”

Check Point Sofrware Technologies很可能成为下一个会产生收购案的主流安全厂商,首席执行官Gil Shwed在该公司第二季度财报电话会议上这样表示。 “我们正在积极地寻求收购目标,期待无论是大规模的还是小规模的扩张,”Shwed表示。“我们在并…

Spark SQL 编程API入门系列之SparkSQL数据源

不多说,直接上干货! SparkSQL数据源:从各种数据源创建DataFrame 因为 spark sql,dataframe,datasets 都是共用 spark sql 这个库的,三者共享同样的代码优化,生成以及执行流程,所以 s…

H.264中的一些易混淆概念

Q:PSNR 峰值信噪比 Q:是根据它来取qp是不是? A:不是, 和QP没有直接关系, 但是QP的选择会影响到PSNR Q: 如果不用率失真最优化, 为什么选择SATD+deltar(mv,mode)作为模式选择的依据?为什么运…

Java中final关键字的几种用法

在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们来了解一下final关键字及其用法。 final关键…

python pyqt5安装_Python3 安装PyQt5及exe打包图文教程

环境: Python 3.6.4 Pycharm Professional 2017.3.3 PyQt5 PyQt5-tools① Python 3 安装Python 3.x 安装时,默认勾选ADD Python 3.6 to PATH和ADD Python to environment variables的情况下,系统会向path中增加以下两个环境变量。D:\Program Files\Py…

《企业软件交付:敏捷与高效管理精要》——3.4 企业软件交付的软件工厂方法...

3.4 企业软件交付的软件工厂方法 正如我们前面讨论的,今天的机构面对的商业环境正以前所未有的速度发生变化。与此同时,这些机构还要管理和降低整个机构的运营成本。这就直接意味着,他们不仅要最大限度地减少浪费和低效率,还要提…

201706问题记录

1.四周阴影 box-shadow:0px 0px 10px #f5f5f5; 2. 原生setattribute()方法 jquery的attr()$(.fd-sq-zk).attr("title","收起"); 3.在iframe中获取外层容器的元素 属性等 $(parent.document).find("html")..... 4.监听页面变大变小事件 /…

一致性hash算法_(图文案例)一致性哈希算法详解 一点课堂(多岸教育)

一致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中”一致性Hash算法”部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:…

《HTML5 Canvas游戏开发实战》——2.1 绘制基本图形

本节书摘来自华章计算机《HTML5 Canvas游戏开发实战》一书中的第2章,第2.1节,作者:张路斌著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.1 绘制基本图形 所谓基本图形,就是指线、矩形、圆等最简单的图形&#x…

如何查看Ubuntu版本

有时候需要查看一下系统安装的Ubuntu的版本,最简单的方式是输入lsb_release -a。whatis lsb_release输出:print distribution-specific information。所以lsb_release这个命令就是用来输出发行版的信息的。 Open the Terminal enter:lsb_release -a It w…

linux下.a/.so/.la目标库区别

在linux平台上编译时,常会遇到目标库的疑问,有静态库也有动态库,单个理解都不太难,但是对复杂的工程而言,一旦混合到一起去,对整个工程的理解和调用,将会造成很大困扰,本文就汇总这几…

python 二元函数绘制_Python绘制二元函数曲面

微实践:绘制二元函数曲面我们将演示如何借助于ufunc的广播运算计算下述二元函数的在一个xy平面上的值并将其绘制成3D曲面。其中,x和y的取值范围均为[-2,2]。为了达到目的,我们需要一个二维的结果数组z,其元素的下标对应参数x,y的取…