Jak utworzyć parę kluczy publiczny-prywatny

Aby podpisać zestaw silną nazwą, musisz mieć parę kluczy publiczny/prywatny. Ta para publicznych i prywatnych kluczy kryptograficznych jest używana podczas kompilacji w celu utworzenia zestawu o silnej nazwie. Parę kluczy można utworzyć za pomocą narzędzia silnej nazwy (Sn.exe). Pliki par kluczy zwykle mają rozszerzenie SNK.

Uwaga

W Visual Studio strony właściwości projektu w językach C# i Visual Basic zawierają kartę Podpisywanie, która umożliwia wybranie istniejących plików kluczy lub wygenerowanie nowych plików kluczy bez użyciaSn.exe . W Visual C++ można określić lokalizację istniejącego pliku klucza na stronie właściwości Zaawansowane w sekcji Konsolidator w sekcji Właściwości konfiguracji okna Strony właściwości. Użycie atrybutu do identyfikowania par plików kluczy było przestarzałe, począwszy AssemblyKeyFileAttribute od Visual Studio 2005.

Tworzenie pary kluczy

Aby utworzyć parę kluczy, w wierszu polecenia wpisz następujące polecenie:

sn –k <file name>

W tym poleceniu nazwa pliku jest nazwą pliku wyjściowego zawierającego parę kluczy.

Poniższy przykład tworzy parę kluczy o nazwie sgKey.snk.

sn -k sgKey.snk

Jeśli zamierzasz opóźnić podpisywanie zestawu i kontrolujesz całą parę kluczy (co jest mało prawdopodobne w scenariuszach testowania zewnętrznego), możesz użyć następujących poleceń, aby wygenerować parę kluczy, a następnie wyodrębnić z niego klucz publiczny do oddzielnego pliku. Najpierw utwórz parę kluczy:

sn -k keypair.snk

Następnie wyodrębnij klucz publiczny z pary kluczy i skopiuj go do oddzielnego pliku:

sn -p keypair.snk public.snk

Po utworzeniu pary kluczy należy umieścić plik, w którym mogą go znaleźć narzędzia podpisywania silnych nazw.

Podczas podpisywania zestawu silną nazwą program Assembly Linker (Al.exe) szuka pliku klucza względem bieżącego katalogu i katalogu wyjściowego. W przypadku korzystania z kompilatorów wiersza polecenia można po prostu skopiować klucz do bieżącego katalogu zawierającego moduły kodu.

Jeśli używasz starszej wersji programu Visual Studio, która nie ma karty Podpisywanie we właściwościach projektu, zalecaną lokalizacją pliku klucza jest katalog projektu z atrybutem pliku określonym w następujący sposób:

[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>

Zobacz też