強名稱程序集(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.pswp.cn/news/455531.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455531.shtml
英文地址,請注明出處:http://en.pswp.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的取…