.NET強名稱工具(Sn.exe)使用詳解
語法格式:
sn [-quiet][option [parameter(s)]]
引數及選項說明
-c [csp]
將預設加密服務提供程式 (CSP) 設定為用於強名稱簽名。此設定應用於整臺計算機。如果不指定 CSP 名稱,則 Sn.exe 將清除當前設定。
-d container
從強名稱 CSP 中刪除指定的金鑰容器。
-D assembly1 assembly2
驗證兩個程式集是否只是簽名不同。這經常用作使用不同的金鑰對重新為程式集建立簽名後的檢查。
-e assembly outfile
從 assembly 中提取公鑰並將其儲存在 outfile 中。
-h
顯示該工具的命令語法和選項。
-i infile container
從指定金鑰容器中的 infile 安裝金鑰對。金鑰容器位於強名稱 CSP 中。
-k [keysize] outfile
生成一個指定大小的新 RSACryptoServiceProvider 金鑰並將其寫入指定的檔案。公鑰和私鑰都寫入該檔案。
如果不指定金鑰大小,並且已安裝了 Microsoft Enhanced Cryptographic Provider,則預設情況下生成 1,024 位的金鑰;否則,生成 512 位的金鑰。
如
果安裝了 Microsoft Enhanced Cryptographic Provider,則 keysize 引數支援 384 位至
16,384 位(增量為 8 位)的金鑰長度。如果安裝了 Microsoft Base Cryptographic Provider,則支援
384 位至 512 位(增量為 8 位)的金鑰長度。
-m [y|n]
指定金鑰容器是計算機特定的還是使用者特定的。如果指定 y,則金鑰容器是計算機特定的。如果指定 n,則金鑰容器是使用者特定的。
如果既沒有指定 y 也沒有指定 n,則此選項顯示當前設定。
-o infile [outfile]
從 infile 中提取公鑰並將其儲存在 .csv 檔案中。公鑰的每一位元組都由逗號分隔。這種格式對於通過硬編碼在原始碼中將公鑰作為初始化陣列引用很有用。如果不指定 outfile,則此選項將輸出放到剪貼簿上。
-p infile outfile
從 infile 中的金鑰對提取公鑰並將其儲存在 outfile
中。此公鑰可用於通過程式集連結器 (Al.exe) 的 /delaysign+ 和 /keyfile
選項對程式集進行延遲簽名。如果延遲建立程式集的簽名,則在編譯時只設定公鑰,並在檔案中為以後知道公鑰時新增的簽名保留空間。
-pc container outfile
從 container 中的金鑰對中提取公鑰並將其儲存在 outfile 中。
-q[uiet]
指定安靜模式;取消顯示成功訊息。
-R[a] assembly infile
使用 infile 中的金鑰對,重新簽名先前已簽名的程式集或延遲已簽名的程式集。
如果使用 -Ra,則重新計算程式集中所有檔案的雜湊。
-Rc[a] assembly container
使用容器中的金鑰對,重新簽名先前已簽名的程式集或延遲已簽名的程式集。
如果使用 -Rca,則重新計算程式集中所有檔案的雜湊。
-Rh assembly
重新計算程式集中所有檔案的雜湊。
-t[p] infile
顯示儲存在 infile 中的公鑰的標記。infile 的內容必須是以前使用 -p 從金鑰對檔案生成的公鑰。不要使用 -t[p] 選項直接從金鑰對檔案提取該標記。
Sn.exe 使用公鑰中的雜湊函式計算該標記。為節省空間,公共語言執行庫在記錄對具有強名稱的程式集的依賴性時,將公鑰標記儲存在清單中,作為對另一個程式集的引用的一部分。-tp 選項除顯示標記外還顯示公鑰。
請注意,此選項不驗證程式集簽名,而且不應用於做出信任決策。此選項僅顯示原始公鑰標記資料。
-T[p] assembly
顯示 assembly 的公鑰標記。assembly 必須是包含程式集清單的檔案的名稱。
Sn.exe 使用公鑰中的雜湊函式計算該標記。為節省空間,公共語言執行庫在記錄對具有強名稱的程式集的依賴性時,將公鑰標記儲存在清單中,作為對另一個程式集的引用的一部分。-Tp 選項除顯示標記外還顯示公鑰。
請注意,此選項不驗證程式集簽名,而且不應用於做出信任決策。此選項僅顯示原始公鑰標記資料。
-v assembly
驗證 assembly 中的強名稱,其中 assembly 是包含程式集清單的檔名。
-vf assembly
驗證 assembly 中的強名稱。與 -v 選項不同,-vf 強制實施驗證,即使已使用 -Vr 選項禁用了驗證。
-Vl
列出此計算機上的強名稱驗證的當前設定。
-Vr assembly [userlist] [infile]
註冊 assembly 以跳過驗證。或者,可以指定用逗號分隔的使用者名稱列表。如果指定 infile,則驗證保持啟用,但 infile 中的公鑰將用於驗證操作。可以 *, strongname 的形式指定程式集,以註冊所有具有指定強名稱的程式集。Strongname 應指定為十六進位制數字的字串以表示標記形式的公鑰。參見 -t 和 -T 選項以顯示公鑰標記。
警告
僅在開發期間使用此選項。將程式集新增到跳過驗證列表會產生安全漏洞。如果將某程式集新增到跳過驗證列表中,則惡意的程式集可以通過使用該程式集的完全限定程式集名稱來隱藏身份,完全限定程式集名稱由程式集名稱、版本、區域性和公鑰標記組成。這使惡意程式集也可以跳過驗證。
-Vu assembly
登出 assembly,不跳過驗證。應用於 -Vr 的同一程式集命名規則也應用於 -Vu。
-Vx
移除所有驗證跳過項。
-?
顯示該工具的命令語法和選項。
注意
所有 Sn.exe 選項都區分大小寫,並且必須完全按上面顯示的樣子鍵入才可以被此工具識別。
備註
-R 和 –Rc 選項對被延遲簽名的程式集很有用。在此方案中,編譯時只設定公鑰,並且以後知道私鑰時執行簽名。
示例
下面的命令建立一個新的隨機金鑰對並將其儲存在 keyPair.snk 中。
sn -k keyPair.snk
下面的命令將 keyPair.snk 中的金鑰儲存在強名稱 CSP 中的容器 MyContainer 中。
sn -i keyPair.snk MyContainer
下面的命令從 keyPair.snk 中提取公鑰並將其儲存在 publicKey.snk 中。
sn -p keyPair.snk publicKey.snk
下面的命令顯示公鑰和 publicKey.snk 包含的公鑰的標記。
sn -tp publicKey.snk
下面的命令驗證程式集 MyAsm.dll。
sn -v MyAsm.dll
下面的命令從預設 CSP 中刪除 MyContainer。
sn -d MyContainer
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-625035/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP名稱空間(Namespace)的使用詳解PHPnamespace
- jquery的事件名稱空間詳解jQuery事件
- XML和Schema名稱空間詳解XML
- .Net使用RabbitMQ詳解MQ
- netperf網路效能測試工具的使用詳解
- 使用RMAN工具-RMAN詳解
- InternetExplorer表單及使用者名稱密碼提交密碼
- Kubernetes 名稱空間入門
- 使用名稱空間:基礎
- ASP.NET中使用Cookie儲存使用者名稱和密碼 (轉)ASP.NETCookie密碼
- log4net使用詳解
- 最強微服務部署工具——Docker內容詳解微服務Docker
- JQuery+Asp.net MVC實現使用者名稱重名查詢jQueryASP.NETMVC
- SQL資料庫使用者只有“名稱”而無“登陸名”解決SQL資料庫
- Oracle_oswbba工具使用詳解Oracle
- Chrome開發者工具詳解(2):Network皮膚Chrome
- 使用p名稱空間和c名稱空間的XML快捷方式XML
- 好程式設計師分享JavaScript名稱空間模式例項詳解程式設計師JavaScript模式
- Linux軟體包名稱含AMD,ARM,x64的詳解Linux
- 使用mmv命令批次修改檔名稱
- github修改使用者名稱Github
- oracle更改使用者名稱Oracle
- 快速修改Oracle使用者名稱Oracle
- beego 如何使用bee工具建立指定資料表名稱的model檔案?Go
- 檢查使用者名稱是否使用介面
- Vue檢查使用者名稱是否使用Vue
- 物件前面是使用者名稱還是schema名!物件
- slowhttptest慢速攻擊工具使用詳解HTTP
- 詳解 awk 工具的使用方法
- c#之.NET Framework 類庫_名稱空間C#Framework
- .NET控制元件名稱縮寫一覽表控制元件
- DotNetZip解決檔名稱中文字元不顯示的問題字元
- 如何檢視字型詳細資訊,修改字型名稱?
- PbootCMS提示:URL名稱與模型URL名稱衝突,請換一個名稱!boot模型
- win10怎麼改使用者名稱_win10如何更改使用者名稱Win10
- 直播app原始碼,輸入密碼和使用者名稱呼叫開發者工具APP原始碼密碼
- mysql之查詢使用者名稱MySql
- 更改MYSQL使用者名稱密碼MySql密碼