如何:创建公钥/私钥对

要使用强名称为程序集签名,必须具有公钥/私钥对。  这一对加密公钥和加密私钥用于在编译过程中创建强名称程序集。  您可以使用强名称工具 (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 的早期版本,在项目属性中没有“签名”选项卡,则建议的密钥文件位置为按如下所示指定了文件特性的项目目录:

C#

C++

VB

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

请参阅

创建和使用具有强名称的程序集

时间: 2024-11-07 04:41:17

如何:创建公钥/私钥对的相关文章

用openssl创建公钥私钥证书的脚本

MacBook-Pro:key username$ vim ./createselfsignedcertificate.sh 内容如下: mkdir data cd data #创建证书授权中心(CA)的私钥 openssl genrsa -out ca.pem 2048 #利用CA的私钥创建根证书 openssl req -new -x509 -days 36500 -key ca.pem -out ca.crt -subj \ "/C=CN/ST=Beijing/L=Beijing/O=Be

在linux下创建的公钥私钥,如何在windows下使用?

如果对使用公钥登陆Linux服务器还不熟悉,那就先看我这篇文档: http://swenzhao.blog.51cto.com/3451741/1583447 看完后,你会发现,该文档中只讲了在windows上使用SecureCRT登陆Linux服务器.公钥私钥是使用SecureCRT创建的. 那么,如果我已经在LInux创建了公钥私钥,能不能把该公钥放到windows客户端上使用呢? 答案是肯定的. 如果你做了实验,你就知道,其实只要把公钥私钥拷贝到windows客户端,按照上面的文档,使用拷

.net core中使用openssl的公钥私钥进行加解密

这篇博文分享的是 C#中使用OpenSSL的公钥加密/私钥解密 一文中的解决方法在 .net core 中的改进.之前的博文针对的是 .NET Framework ,加解密用的是 RSACryptoServiceProvider .虽然在 corefx(.NET Core Framework) 中也有 RSACryptoServiceProvider ,但它目前只支持 Windows ,不能跨平台. 之前的 new RSACryptoServiceProvider(); 代码在 mac 上运行,

ssh配置公钥私钥(key)登录SecureCRT

在用windows时管理linux服务器时,常会用到SecureCRT.Xshell以及开源的putty.在我工作环境大多都是采用密码认证的方式进行登录.今天对学习了些SecureCRT的密钥登录方式.对比密码认证方式,使用密钥认证登录会有以下几个优点: 1.公钥认证允许使用空密码,省去每次登录都需要输入密码的麻烦2.多用户管理服务器时,可以通过多个公钥登录同一用户下,可以避免因为密码认证被用户都需要密码,导致的密码容易泄密的危险.并且使用passwd修改密码,也不会影响到其他用户的登录.3.做

OpenSSL与公钥私钥证书签名的千丝万缕

导语 人对任何事物的认识都是阶段性的,从无知到知晓,从懵懂到半知半解,从误解到将信将疑,从晕头转向到下定决心吃透. 介绍 OpenSSL是一个强大的命令行工具,它可以用来处理许多种跟PKI(Public Key Infrastructure)即:公钥基础建设.HTTPS(HTTP以及TLS)等相关的技术.这篇提纲挈领式的随笔文章可以提供快速的OpenSSL相关技术的命令咨询,这对于IT软件开发技术人员的日常工作来说非常的有必要. 这里主要包含了OpenSSL的一些例子,有:如何生成私钥(priv

公钥-私钥

//创建公钥和私钥 $res=openssl_pkey_new(array('private_key_bits' => 512)); #此处512必须不能包含引号. //提取私钥 openssl_pkey_export($res, $private_key); //生成公钥 $public_key=openssl_pkey_get_details($res); $public_key=$public_key["key"]; //显示数据 var_dump($private_key

centos生成公钥私钥 securecrt通过公钥访问服务器 winscp通过公钥访问服务器

忙碌了一下午,一直到写博客现在.都在纠结阿里云服务器上配置公钥私钥,网上的说辞总是参差不齐,需要各个去综合,合理取舍.今天终于配置好了. 我就不说这种方式的重要性了,往往黑客都不需要你的登陆账户密码就能上你的服务器,多么可怕.比如[redis后门]自己百度哈. 直入主题: [[email protected] .ssh]$ ssh-keygen -C"liyongdada" -t rsa    Generating public/private rsa key pair.    Ent

公钥私钥与SSL的握手协议(转)

一,公钥私钥1,公钥和私钥成对出现2,公开的密钥叫公钥,只有自己知道的叫私钥3,用公钥加密的数据只有对应的私钥可以解密4,用私钥加密的数据只有对应的公钥可以解密5,如果可以用公钥解密,则必然是对应的私钥加的密6,如果可以用私钥解密,则必然是对应的公钥加的密明白了? 假设一下,我找了两个数字,一个是1,一个是2.我喜欢2这个数字,就保留起来,不告诉你们,然后我告诉大家,1是我的公钥. 我有一个文件,不能让别人看,我就用1加密了.别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有

公钥私钥 ssl/tsl的概念

一,公钥私钥1,公钥和私钥成对出现2,公开的密钥叫公钥,只有自己知道的叫私钥3,用公钥加密的数据只有对应的私钥可以解密4,用私钥加密的数据只有对应的公钥可以解密5,如果可以用公钥解密,则必然是对应的私钥加的密6,如果可以用私钥解密,则必然是对应的公钥加的密明白了? 假设一下,我找了两个数字,一个是1,一个是2.我喜欢2这个数字,就保留起来,不告诉你们,然后我告诉大家,1是我的公钥. 我有一个文件,不能让别人看,我就用1加密了.别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有