Sn.exe (Tanımlayıcı Ad Aracı)Sn.exe (Strong Name Tool)

Tanımlayıcı ad Aracı (Sn.exe), derlemelerin güçlü adlarlaimzalanmanıza yardımcı olur.The Strong Name tool (Sn.exe) helps sign assemblies with strong names. Sn.exe; temel yönetim, imza oluşturma ve imza doğrulaması için seçenekler sağlar.Sn.exe provides options for key management, signature generation, and signature verification.

Uyarı

Güvenlik için tanımlayıcı adlara güvenmeyin.Do not rely on strong names for security. Yalnızca benzersiz bir kimlik sağlarlar.They provide a unique identity only.

Tanımlayıcı adlandırma ve tanımlayıcı adlı derlemeler hakkında daha fazla bilgi için bkz. Strong -adlandırılmış derlemeler ve nasıl yapılır: bir derlemeyi güçlü bir adla imzalama.For more information on strong naming and strong-named assemblies, see Strong-Named Assemblies and How to: Sign an Assembly with a Strong Name.

Tanımlayıcı Ad aracı Visual Studio ile birlikte otomatik olarak yüklenir.The Strong Name tool is automatically installed with Visual Studio. Aracı başlatmak için Geliştirici Komut İstemi (veya Windows 7 ' de Visual Studio komut Istemi) kullanın.To start the tool, use the Developer Command Prompt (or the Visual Studio Command Prompt in Windows 7). Daha fazla bilgi için bkz. komut istemleri.For more information, see Command Prompts.

Not

64 bit bilgisayarlarda, Visual Studio x64 Win64 komut Istemi kullanarak Visual Studio Geliştirici Komut İstemi ve 64 bit sürümünü kullanarak Sn.exe 32 bit sürümünü çalıştırın.On 64-bit computers, run the 32-bit version of Sn.exe by using the Developer Command Prompt for Visual Studio and the 64-bit version by using the Visual Studio x64 Win64 Command Prompt.

Komut satırına şunu yazın:At the command prompt, type the following:

Söz dizimiSyntax

sn [-quiet][option [parameter(s)]]  

ParametrelerParameters

SeçenekOption AçıklamaDescription
-a identityKeyPairFile signaturePublicKeyFile AssemblySignatureKeyAttributeKimlik anahtarını bir dosyadan imza anahtarına geçirmek için veri üretir.Generates AssemblySignatureKeyAttribute data to migrate the identity key to the signature key from a file.
-ac identityPublicKeyFile identityKeyPairContainer signaturePublicKeyFile AssemblySignatureKeyAttributeKimlik anahtarını bir anahtar kapsayıcısından imza anahtarına geçirmek için veri üretir.Generates AssemblySignatureKeyAttribute data to migrate the identity key to the signature key from a key container.
-c [csp] Tanımlayıcı ad imzası için kullanılacak varsayılan şifreleme hizmeti sağlayıcısı (CSP) ayarlar.Sets the default cryptographic service provider (CSP) to use for strong name signing. Bu ayar tüm bilgisayara uygulanır.This setting applies to the entire computer. Bir CSP adı belirtmezseniz, Sn.exe geçerli ayarı temizler.If you do not specify a CSP name, Sn.exe clears the current setting.
-d container Belirtilen anahtar kapsayıcısını tanımlayıcı ad CSP'sinden siler.Deletes the specified key container from the strong name CSP.
-D assembly1 assembly2 İki derlemenin yalnızca imza farkı olduğunu doğrular.Verifies that two assemblies differ only by signature. Bu çoğunlukla, bir derleme farklı bir anahtar çifti ile yeniden imzalandıktan sonra denetim olarak kullanılır.This is often used as a check after an assembly has been re-signed with a different key pair.
-e assembly outfile Derlemeden ortak anahtarı ayıklar ve çıkışdosyası içinde depolar .Extracts the public key from assembly and stores it in outfile.
-h Araç için komut sözdizimini ve seçenekleri görüntüler.Displays command syntax and options for the tool.
-i infile container Belirtilen anahtar kapsayıcısındaki INFILE 'dan anahtar çiftini yükleme.Installs the key pair from infile in the specified key container. Anahtar kapsayıcısı, tanımlayıcı ad CSP'sinde bulunur.The key container resides in the strong name CSP.
-k [keysize] outfile RSACryptoServiceProviderBelirtilen boyutta yeni bir anahtar oluşturur ve belirtilen dosyaya yazar.Generates a new RSACryptoServiceProvider key of the specified size and writes it to the specified file. Hem ortak hem de özel anahtar dosyaya yazılır.Both a public and private key are written to the file.

Bir anahtar boyutu belirtmezseniz, makinenizde Microsoft gelişmiş şifreleme sağlayıcısı yüklü ise varsayılan olarak 1,024-bit bir anahtar oluşturulur, yüklü değilse 512-bit anahtar oluşturulur.If you do not specify a key size, a 1,024-bit key is generated by default if you have the Microsoft enhanced cryptographic provider installed; otherwise, a 512-bit key is generated.

Microsoft Gelişmiş şifreleme sağlayıcısı yüklüyse, KeySize parametresi, 384 bitten 16.384 bite kadar, 8 bitten oluşan anahtar uzunluklarını destekler.The keysize parameter supports key lengths from 384 bits to 16,384 bits in increments of 8 bits if you have the Microsoft enhanced cryptographic provider installed. Makinenizde Microsoft temel şifreleme sağlayıcısı yüklüyse, 8 bitlik artışlarla 384 bit'ten 512 bit'e kadar olan anahtar uzunluklarını destekler.It supports key lengths from 384 bits to 512 bits in increments of 8 bits if you have the Microsoft base cryptographic provider installed.
-m [y|n] Anahtar kapsayıcılarının bilgisayara özgü mi yoksa kullanıcıya özgü mü olduğunu belirtir.Specifies whether key containers are computer-specific, or user-specific. Y belirtirseniz, anahtar kapsayıcıları bilgisayara özgüdür.If you specify y, key containers are computer-specific. N belirtirseniz, anahtar kapsayıcıları kullanıcıya özeldir.If you specify n, key containers are user-specific.

y ne n öğelerinden hiçbirini belirtmezseniz, bu seçenek geçerli ayarı görüntüler.If neither y nor n is specified, this option displays the current setting.
-o infile [outfile] Indosyadan ortak anahtarı ayıklar ve bir. csv dosyasında depolar.Extracts the public key from the infile and stores it in a .csv file. Ortak anahtarın her baytı virgülle ayrılır.A comma separates each byte of the public key. Bu biçim, kaynak kodunda başlatılmış diziler olarak anahtarlara ilişkin sabit kodlama başvuruları için yararlıdır.This format is useful for hard-coding references to keys as initialized arrays in source code. Bir çıkışdosyası belirtmezseniz, bu seçenek çıktıyı panoya yerleştirir.If you do not specify an outfile, this option places the output on the Clipboard. Note: Bu seçenek, girişin yalnızca bir ortak anahtar olduğunu doğrulamaz.Note: This option does not verify that the input is only a public key. infileÖzel anahtarı olan bir anahtar çifti içeriyorsa, özel anahtar de ayıklanır.If the infile contains a key pair with a private key, the private key is also extracted.
-p infile outfile [hashalg] Ortak anahtarı InFile içindeki anahtar çiftinden ayıklar ve isteğe bağlı olarak HashAlg tarafından belirtilen RSA algoritmasını kullanarak bu dosyayı çıkışdosyası içinde depolar.Extracts the public key from the key pair in infile and stores it in outfile, optionally using the RSA algorithm specified by hashalg. Bu ortak anahtar, derleme bağlayıcının /delaysign + ve /keyfile seçeneklerini kullanarak bir derlemeyi gecikmeli imzalamak için kullanılabilir (Al.exe).This public key can be used to delay-sign an assembly using the /delaysign+ and /keyfile options of the Assembly Linker (Al.exe). Derleme gecikmeli imzalanmış olduğunda, yalnızca ortak anahtar derleme zamanında ayarlanır ve özel anahtarı bulunduğunda, daha sonra eklenecek bir imza için dosyada alan ayrılır.When an assembly is delay-signed, only the public key is set at compile time and space is reserved in the file for the signature to be added later, when the private key is known.
-pc container outfile [hashalg] Kapsayıcıda anahtar çiftinden ortak anahtarı ayıklar ve çıkışdosyası içinde depolar.Extracts the public key from the key pair in container and stores it in outfile. HashAlg seçeneğini KULLANıRSANıZ, RSA algoritması ortak anahtarı ayıklamak için kullanılır.If you use the hashalg option, the RSA algorithm is used to extract the public key.
-Pb [y|n] Tanımlayıcı ad atlama ilkesinin uygulatılıp uygulatılmayacağı belirtir.Specifies whether the strong-name bypass policy is enforced. Y belirtirseniz, tam güven derlemeleri için tanımlayıcı adlar tam güvene yüklendiğinde doğrulanmaz AppDomain .If you specify y, strong names for full-trust assemblies are not validated when loaded into a full-trust AppDomain. N belirtirseniz, tanımlayıcı adlar doğruluk için onaylanır, ancak belirli bir tanımlayıcı ad için desteklenmez.If you specify n, strong names are validated for correctness, but not for a specific strong name. StrongNameIdentityPermissionTam güvenle derlemeler üzerinde hiçbir etkiye sahip değildir.The StrongNameIdentityPermission has no effect on full-trust assemblies. Bir tanımlayıcı ad eşleştirmesi için kendi denetiminizi gerçekleştirmeniz gerekir.You must perform your own check for a strong name match.

Ne y de n belirtilmemişse, bu seçenek geçerli ayarı görüntüler.If neither y nor n is specified, this option displays the current setting. Varsayılan değer: y.The default is y. Note: 64 bit bilgisayarlarda, bu parametreyi hem 32 bit hem de Sn.exe 64-bit örneklerinde ayarlamanız gerekir.Note: On 64-bit computers, you must set this parameter in both the 32-bit and the 64-bit instances of Sn.exe.
-q[uiet] Sessiz mod kullanılacağını belirtir; başarı iletilerinin görüntülenmesini engeller.Specifies quiet mode; suppresses the display of success messages.
-R[a] assembly infile Önceden imzalanmış veya gecikmeli imzalanmış bir derlemeyi InFile içindeki anahtar çifti ile yeniden imzalar.Re-signs a previously signed or delay-signed assembly with the key pair in infile.

-Ra kullanılıyorsa, karmalar derlemedeki tüm dosyalar için yeniden hesaplanır.If -Ra is used, hashes are recomputed for all files in the assembly.
-Rc[a] assembly container Önceden imzalanmış veya gecikmeli imzalanmış bir derlemeyi kapsayıcıda anahtar çifti ile yeniden imzalar.Re-signs a previously signed or delay-signed assembly with the key pair in container.

-RCA kullanılıyorsa, karmalar derlemedeki tüm dosyalar için yeniden hesaplanır.If -Rca is used, hashes are recomputed for all files in the assembly.
-Rh assembly Derlemedeki tüm dosyaların karma değerlerini yeniden hesaplar.Recomputes hashes for all files in the assembly.
-t[p] infile InFile içinde depolanan ortak anahtar belirtecini görüntüler.Displays the token for the public key stored in infile. InFile içeriğinin, daha önce -p kullanan bir anahtar çifti dosyasından oluşturulmuş bir ortak anahtar olması gerekir.The contents of infile must be a public key previously generated from a key pair file using -p. Belirteci doğrudan bir anahtar çifti dosyasından ayıklamak için -t [p] seçeneğini kullanmayın.Do not use the -t[p] option to extract the token directly from a key pair file.

Sn.exe, ortak anahtardan bir karma işlevini kullanarak belirteci hesaplar.Sn.exe computes the token by using a hash function from the public key. Alandan kazanmak için, ortak dil çalışma zamanı, tanımlayıcı bir ada sahip derlemeye bağımlılık kaydederken ortak anahtar belirteçlerini başka bir derlemenin başvurusunun parçası olarak bildirimde depolar.To save space, the common language runtime stores public key tokens in the manifest as part of a reference to another assembly when it records a dependency to an assembly that has a strong name. -TP seçeneği, belirtece ek olarak ortak anahtarı görüntüler.The -tp option displays the public key in addition to the token. AssemblySignatureKeyAttributeÖzniteliği derlemeye uygulanmışsa, belirteç kimlik anahtarına, karma algoritmanın adına ve kimlik anahtarına göre gösterilir.If the AssemblySignatureKeyAttribute attribute has been applied to the assembly, the token is for the identity key, and the name of the hash algorithm and the identity key is displayed.

Bu seçeneğin derleme imzasını doğrulamadığını ve güven kararları vermek için kullanılmaması gerektiğini unutmayın.Note that this option does not verify the assembly signature and should not be used to make trust decisions. Bu seçenek yalnızca ham ortak anahtar belirteci verilerini görüntüler.This option only displays the raw public key token data.
-T[p] assembly Derleme için ortak anahtar belirtecini görüntüler .Displays the public key token for assembly. Derleme , derleme bildirimi içeren bir dosyanın adı olmalıdır.The assembly must be the name of a file that contains an assembly manifest.

Sn.exe, ortak anahtardan bir karma işlevini kullanarak belirteci hesaplar.Sn.exe computes the token by using a hash function from the public key. Alandan kazanmak için, çalışma zamanı, tanımlayıcı bir ada sahip derlemeye bağımlılık kaydederken ortak anahtar belirteçlerini başka bir derlemenin başvurusunun parçası olarak bildirimde depolar.To save space, the runtime stores public key tokens in the manifest as part of a reference to another assembly when it records a dependency to an assembly that has a strong name. -TP seçeneği, belirtece ek olarak ortak anahtarı görüntüler.The -Tp option displays the public key in addition to the token. AssemblySignatureKeyAttributeÖzniteliği derlemeye uygulanmışsa, belirteç kimlik anahtarına, karma algoritmanın adına ve kimlik anahtarına göre gösterilir.If the AssemblySignatureKeyAttribute attribute has been applied to the assembly, the token is for the identity key, and the name of the hash algorithm and the identity key is displayed.

Bu seçeneğin derleme imzasını doğrulamadığını ve güven kararları vermek için kullanılmaması gerektiğini unutmayın.Note that this option does not verify the assembly signature and should not be used to make trust decisions. Bu seçenek yalnızca ham ortak anahtar belirteci verilerini görüntüler.This option only displays the raw public key token data.
-TS assembly infile İmzalı veya kısmen imzalı derlemeyi InFile içindeki anahtar çiftiyle test edin.Test-signs the signed or partially signed assembly with the key pair in infile.
-TSc assembly container Test-imzalanmış veya kısmen imzalı derlemeyi anahtar kapsayıcısı kapsayıcısında anahtar çiftiyle imzalar.Test-signs the signed or partially signed assembly with the key pair in the key container container.
-v assembly Derlemede tanımlayıcı adı doğrular; burada derleme , derleme bildirimi içeren bir dosyanın adıdır.Verifies the strong name in assembly, where assembly is the name of a file that contains an assembly manifest.
-vf assembly Derlemede tanımlayıcı adı doğrular .Verifies the strong name in assembly. - V seçeneğinin aksine- VF , -VR seçeneği kullanılarak devre dışı bırakılmış olsa bile doğrulamayı zorlar.Unlike the -v option, -vf forces verification even if it is disabled using the -Vr option.
-Vk regfile.reg assembly [userlist] [infile] Doğrulamayı atlama için belirtilen derlemeyi kaydetmek üzere kullanabileceğiniz bir kayıt girdileri (.reg) dosyası oluşturur.Creates a registration entries (.reg) file you can use to register the specified assembly for verification skipping. -VR seçeneğine uygulanan derleme adlandırmayla ilgili kurallar, – VK için de geçerlidir.The rules for assembly naming that apply to the -Vr option apply to –Vk as well. UserList ve InFile seçenekleri hakkında daha fazla bilgi için – VR seçeneğine bakın.For information about the userlist and infile options, see the –Vr option.
-Vl Bu bilgisayardaki tanımlayıcı ad doğrulamasının geçerli ayarlarını listeler.Lists current settings for strong-name verification on this computer.
-Vr assembly [userlist] [infile] Doğrulama atlama için bütünleştirilmiş kodu kaydeder.Registers assembly for verification skipping. İsteğe bağlı olarak, doğrulama atlamanın geçerli olacağı kullanıcı adlarının virgülle ayrılmış listesini belirtebilirsiniz.Optionally, you can specify a comma-separated list of user names the skip verification should apply to. InFile belirtirseniz, doğrulama etkin kalır ancak doğrulama işlemlerinde InFile içindeki ortak anahtar kullanılır.If you specify infile, verification remains enabled, but the public key in infile is used in verification operations. Derlemeyi * , belirtilen tanımlayıcı ada sahip tüm derlemeleri kaydetmek için formunda belirtebilirsiniz.You can specify assembly in the form *, strongname to register all assemblies with the specified strong name. StrongName için, ortak anahtarın simgeleştirilmiş biçimini temsil eden onaltılık basamakların dizesini belirtin.For strongname, specify the string of hexadecimal digits representing the tokenized form of the public key. Ortak anahtar belirtecini görüntülemek için -t ve -t seçeneklerine bakın.See the -t and -T options to display the public key token. Dikkat: Bu seçeneği yalnızca geliştirme sırasında kullanın.Caution: Use this option only during development. Doğrulama atlama listesine bir derleme eklemek güvenlik açığı oluşturur.Adding an assembly to the skip verification list creates a security vulnerability. Kötü amaçlı bir derleme, kimliğini gizlemek için doğrulama atlama listesine eklenmiş derlemenin tam olarak belirtilmiş derleme adını (derleme adı, sürüm, kültür ve ortak anahtar belirteci) kullanabilir.A malicious assembly could use the fully specified assembly name (assembly name, version, culture, and public key token) of the assembly added to the skip verification list to fake its identity. Bu, kötü amaçlı derlemenin de doğrulamayı atlamasına izin verir.This would allow the malicious assembly to also skip verification.
-Vu assembly Doğrulama atlama için bütünleştirilmiş kodun kaydını siler.Unregisters assembly for verification skipping. -VR ' ye uygulanan derleme adlandırması için aynı kurallar -vu & lt için geçerlidir.The same rules for assembly naming that apply to -Vr apply to -Vu.
-Vx Doğrulama atlama girişlerinin tümünü kaldırır.Removes all verification-skipping entries.
-? Araç için komut sözdizimini ve seçenekleri görüntüler.Displays command syntax and options for the tool.

Not

Tüm Sn.exe seçenekler büyük/küçük harfe duyarlıdır ve araç tarafından tanınması için tam olarak gösterildiği gibi yazılmalıdır.All Sn.exe options are case-sensitive and must be typed exactly as shown to be recognized by the tool.

AçıklamalarRemarks

-R ve – RC seçenekleri, gecikmeli imzalanmış Derlemelerle yararlı olur.The -R and –Rc options are useful with assemblies that have been delay-signed. Bu senaryoda, derleme zamanında yalnızca ortak anahtar ayarlanmıştır, imzalama ise daha sonra, özel anahtar tanındığında yapılır.In this scenario, only the public key has been set at compile time and signing is performed later, when the private key is known.

Not

Kayıt defteri gibi korumalı kaynaklara yazılan parametreler (örneğin, –VR) için, SN.exe yönetici olarak çalıştırın.For parameters (for example, –Vr) that write to protected resources such as the registry, run SN.exe as an administrator.

Tanımlayıcı ad Aracı, ortak/özel anahtar çiftlerinin algoritma tanımlayıcısı ile oluşturulduğunu varsayar AT_SIGNATURE .The Strong Name tool assumes that public/private key pairs are generated with the AT_SIGNATURE algorithm identifier. Algoritmayla oluşturulan ortak/özel anahtar çiftleri AT_KEYEXCHANGE bir hata oluşturur.Public/private key pairs generated with the AT_KEYEXCHANGE algorithm generate an error.

ÖrneklerExamples

Aşağıdaki komut yeni, rastgele bir anahtar çifti oluşturur ve içinde depolar keyPair.snk .The following command creates a new, random key pair and stores it in keyPair.snk.

sn -k keyPair.snk  

Aşağıdaki komut, içindeki anahtarını keyPair.snk MyContainer tanımlayıcı ad CSP içindeki kapsayıcıda depolar.The following command stores the key in keyPair.snk in the container MyContainer in the strong name CSP.

sn -i keyPair.snk MyContainer  

Aşağıdaki komut, öğesinden ortak anahtarı ayıklar keyPair.snk ve içinde depolar publicKey.snk .The following command extracts the public key from keyPair.snk and stores it in publicKey.snk.

sn -p keyPair.snk publicKey.snk  

Aşağıdaki komut, içinde bulunan ortak anahtar için ortak anahtarı ve belirteci görüntüler publicKey.snk .The following command displays the public key and the token for the public key contained in publicKey.snk.

sn -tp publicKey.snk  

Aşağıdaki komut derlemeyi doğrular MyAsm.dll .The following command verifies the assembly MyAsm.dll.

sn -v MyAsm.dll  

Aşağıdaki komut MyContainer Varsayılan CSP 'den silinir.The following command deletes MyContainer from the default CSP.

sn -d MyContainer  

Ayrıca bkz.See also