码迷,mamicode.com
首页 > 其他好文 > 详细

如何:创建公钥/私钥对

时间:2016-04-11 14:27:26      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

要使用强名称为程序集签名,必须具有公钥/私钥对。  这一对加密公钥和加密私钥用于在编译过程中创建强名称程序集。  您可以使用强名称工具 (Sn.exe) 来创建密钥对。  密钥对文件通常具有 .snk 扩展名。  

技术分享注意

在 Visual Studio 中,C# 和 Visual Basic 项目属性页包括一个“签名”选项卡,通过该选项卡,您无需使用 Sn.exe 即可选择现有密钥文件或生成新密钥文件。  在 Visual C++ 中,可以在“属性页”窗口的“配置属性”部分的“链接器”部分中,在“高级”属性页中指定现有密钥文件的位置。  从 Visual Studio 2005 开始,使用 AssemblyKeyFileAttribute 特性标识密钥文件对的用法已过时。  

创建密钥对

  1. 在命令提示符处,键入下列命令:

    sn –k <file name>

    在此命令中,“文件名”是包含密钥对的输出文件的名称。

下面的示例创建名为 sgKey.snk 的密钥对。

 
 
sn -k sgKey.snk

如果您需要延迟对程序集签名并控制整个密钥对(密钥对不太可能在测试方案之外),可使用以下命令生成密钥对,然后从中将公钥提取到一个单独的文件中。  首先,创建密钥对:  

 
 
sn -k keypair.snk
  • 下一步,从密钥对中提取公钥,并将其复制到一个单独的文件中:

 
 
sn -p keypair.snk public.snk
  • 创建密钥对之后,必须将文件放在强名称签名工具可以找到的位置。

当使用强名称对程序集进行签名时,程序集链接器 (Al.exe) 查找与当前目录和输出目录相关的密钥文件。  当使用命令行编译器时,只需将密钥复制到包含代码模块的当前目录即可。  

如果使用的是 Visual Studio 的早期版本,在项目属性中没有“签名”选项卡,则建议的密钥文件位置为按如下所示指定了文件特性的项目目录:

 
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]

如何:创建公钥/私钥对

标签:

原文地址:http://www.cnblogs.com/1175429393wljblog/p/5378002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!