Secutil 工具 (Secutil.exe)

Secutil 工具可以從組件中擷取強式名稱 (Strong Name) 資訊或 X.509 憑證的公開金鑰 (Public Key),並將這個資訊轉換成可以被合併到程式碼的格式。

secutil [-array | -hex] [-cmode | -vbmode]
{-strongname | -x509certificate} filename 

參數

引數 描述

filename

含有強式名稱公開金鑰或 X.509 憑證的組件檔。

選項 描述

-a[rray]

當與 -strongname 選項一起使用時,傳回強式名稱資訊,包含公開金鑰 (做為位元組陣列) 和指定組件的名稱與版本。當與 -x509certificate 選項一起使用時,傳回公開金鑰做為指定組件中 X.509 憑證的位元組陣列。如果您沒有指定 -array-hex 選項,預設值是 -array

-c[mode]

傳回強式名稱資訊或指定組件中 X.509 憑證的公開金鑰。如果您沒有指定 -cmode-vbmode 選項,預設值是 -cmode

-h[elp]

顯示工具的命令語法和選項。

-hex

當與 -strongname 選項一起使用時,傳回強式名稱資訊,包含做為十六進位編碼字串的公開金鑰和指定組件的名稱與版本。當與 -509certificate 選項一起使用時,傳回公開金鑰做為指定組件中 X.509 憑證的十六進位編碼字串。

-s[trongname]

從指定組件中擷取強式名稱公開金鑰、組件名稱和版本號碼。根據預設,公開金鑰是以適合用於 C# 或 C++ 之位元組陣列定義的陣列格式傳回 (如需詳細資訊,請參閱 -array-cmode 選項)。

參考強式名稱組件以外的檔案會傳回錯誤。

-v[bmode]

傳回強式名稱資訊或 X.509 憑證的公開金鑰,這個金鑰是以適合用於 Visual Basic 的陣列所格式化而成的。

-x[509certificate]

從指定組件的 X.509 憑證中擷取公開金鑰。根據預設,公開金鑰是以適合用於 C# 或 C++ 之位元組陣列定義的陣列格式傳回 (如需詳細資訊,請參閱 -array-cmode 選項)。

只有已經以 Authenticode 簽名的檔案才包含 X.509 Authenticode 發行者 (Publisher) 憑證。參考其他檔案類型會傳回錯誤。

-?

顯示工具的命令語法和選項。

備註

如果您沒有指定任何命令列選項,Secutil.exe 會顯示工具的命令語法和選項。

.NET Framework 安全系統會根據其相關的辨識項提供限制程式碼動作的機制。強式名稱和 Authenticode 發行者這兩種辨識項類型,都是根據密碼編譯金鑰和數位簽章技術。

在命令式識別 (Identity) 使用權限檢查中使用這些形式的辨識項,您必須參考相當長的二進位資料序列:在強式名稱的情況下為公開金鑰值,而在 Authenticode 發行者的情況下則為 X.509 憑證。執行 Secutil.exe 來指定含有您要檢查之辨識項的組件檔名稱。您可以常數定義格式將工具的輸出貼到程式碼。然後使用這個常數值來建構正確的識別使用權限以進行檢查。如需建構這些使用權限方式的詳細資訊,請參閱 System.Security.Permissions.PublisherIdentityPermission 類別System.Security.Permissions.StrongNameIdentityPermission 類別

範例

下列命令會從 myFile 擷取強式名稱資訊,然後以預設的位元組陣列格式傳回公開金鑰。

secutil -strongname myFile

上述命令的輸出如下。

Microsoft (R) .NET Framework SecUtil 1.0.2310.0
Copyright (c) Microsoft Corp 1999-2000. All rights reserved.

Public Key = 
{ 0, 36, 0, 0, 4, 128, 0, 0, 148, 0, 0, 0, 6, 2, 0, 0, 0, 36, 0, 0, 82,
83, 65, 49, 0, 4, 0, 0, 1, 0, 1, 0, 125, 153, 220, 107, 82, 7, 120, 98,
141, 142, 191, 216, 4, 190, 9, 125, 149, 0, 18, 169, 111, 81, 149, 179,
79, 192, 204, 91, 207, 61, 87, 213, 54, 9, 203, 70, 249, 71, 6, 181, 33,
153, 60, 69, 190, 178, 223, 99, 236, 47, 217, 110, 16, 228, 107, 180, 72,
189, 147, 126, 155, 81, 88, 89, 125, 126, 30, 149, 207, 139, 216, 132,
46, 171, 8, 95, 249, 114, 196, 80, 183, 159, 173, 75, 73, 113, 195, 29,
41, 6, 49, 150, 195, 168, 228, 235, 156, 42, 215, 132, 177, 108, 211, 78,
86, 170, 16, 0, 66, 93, 100, 139, 9, 78, 60, 3, 242, 12, 35, 13, 154, 39,
50, 183, 95, 253, 208, 172 }
Name =
myFile
Version =
1.2.3.4
Success

下列命令會從 myHelloFile 中的 X.509 憑證擷取公開金鑰,然後將它以十六進位編碼的字串傳回。

secutil -hex -x509certificate myHelloFile 

上述命令的輸出如下。

Microsoft (R) .NET Framework SecUtil 1.0.2310.0
Copyright (c) Microsoft Corp 1999-2000. All rights reserved.

X509 Certificate =
0x308201833082012DA0030201020210B9360877C4B169244F7435304C270D4300D06092A8
64886F70D01010405003016311430120603550403130B526F6F74204167656E6379301E170
D3030313131353030333033385A170D3339313233313233353935395A30223120301E06035
5040313174A6F6527732D536F674776172652D456D706F7269756D305C300D06092A864886
F70D0101010500034B003048024100B7C23E337868D7971CEBB435B68736A6F694AFD50443
147FE18AF26029B2A8FAB3DC014D72195CA64844E26648878B32BABFE06126D1B63233C2D7
A88A38EC170203010001A34B304930470603551D010440303E801012E4092D061D1D4F008D
6121DC166463A1183016311430120603550403130B526F6F74204167656E6379821006376C
00AA00648A11CFB8D4AA5C35F4300D06092A864886F70D01010405000341005690921281BE
823AC4EC33D09ED8A2D04AE052B6022AB6DEEC67E3A6F203051AEDB8C54F3E7280D3983DC3
07560EA934966871ED5D4C9D304AC2553FD24BF3EE
Success

請參閱

參考

.NET Framework 工具
System.Security.Permissions.PublisherIdentityPermission Class
System.Security.Permissions.StrongNameIdentityPermission Class
SDK 命令提示字元

概念

辨識項