如何生成密钥文件Snk
2010-06-09 11:19
在.net中,snk用于给应用程序集签名,保证应用程序集的有效性。
强命名程序集的缘由 : 目前Windows中出现的DLL Hell问题(两个不同的公司可能开发处具有相同名称的程序集,如果将相同名称的程序 集放置到同一个目录下,则会出现程序集覆盖现象,最后安装的程序集会覆盖前面的程序集,从而可能导致应用序不能正常运行)。由此看来,仅靠名称来区分程序 集是不足够的。CLR采取了强命名程序集的方式来唯一的表示程序集。强命名程序集包含四个标识:名称,版本号,语言文化标识和一个共有/私有密钥对。两种 程序集/两种部署方式:.Net支持两种程序集:弱命名程序集和强命名程序集(注:.Net框架中没有弱命名程序集,只是为了和强命名程序集相对应而
已 )。 弱命名程序集和强命名程序集在结构上是相同的。他们都采用PE文件格式,包含PE表头,CLR表头,元数据和清单表。区别在于:强命名程序集拥有一 个发布者的公钥/私钥签名对,他们用于唯一的标识程序集的发布者。通过公钥/私钥对,我们可以对程序集进行唯一的标识,安全策略和版本策略。
VS2005中,强命名的原理 :
先利用SN.exe这个工具生成一个比如 SampleKey.snk的文件,这个文件的英文原文叫string name key file,然后用加密的算法根据SampleKey.snk生成一个SampleKeyPublic.snk.最后在根据 SampleKeyPublic.snk提取一个public key token
,public key token是一个16位的数字和字母混合的数(我不敢确定是不是十六进制数):大致流程如下:
SampleKey.snk --根据一定的算法--> SampleKeyPublic.snk---->public key token
所以我们只要SampleKey.snk和public key token就可以了,SampleKeyPublic.snk就没什么用了.
实际操作 如下:
1.打开SDK Command Prompt或者VS2005中的Visual Studio 2005 Command Prompt.而不是windows的cmd
2.输入sn -k SampleKey.snk,得到的文件在命令提示符的当前文件夹下(微软叫文件夹很少叫目录,最正点是folder)
3.输入sn -p SampleKey.snk SampleKeyPublic.snk
4.输入sn -t SampleKeyPublic.snk 得到public key token
打开VS2005,找到项目,然后右击"项目名"找到"属性","属性"里面有个"签名"的选项卡,然后钩上
"为程序集签名",再"选择强名称密钥文件".做完了操作,然后记得保存,编译
分享到:
相关推荐
这个是贪吃蛇程序,这个是修改过的,水果也会动的
SNAKE GAME DESIGNNNNNNN
Active Contour Algorithm for image segmentation
大家做项目开发一般都是分层的,比如UI层,业务层,数据访问层。业务层引用数据访问层的DLL(比如dataAccess.dll),并使用dataAccess.dll中的方法。...比如可以直接使用里面的ChangePwd(string UserName,string Pwd)方法...
行业教育软件-学习软件-GJZC_SNK5.3.zip
步骤: 1.先创建类库项目,完成编码; 2....,则在D:\GACkey\GACkey.snk就会生成密钥文件; 3.关联类库文件和密钥文件,并编译生成dll文件(有两种方法); a. 在 Visual Studio .NET 解决方案资源管
MasterCAM 2020机床文件与后处理.zip
病毒voiranime.com python scraper保持最新版本如何使用动漫对象需要2个参数:名称和网址...然后有不同的方法: SNK.get_episodes()返回可用剧集的列表SNK.get_last()返回最后一个可用的情节文件中已经提供了此示例。
mastercam2022后处理+机床文件
neo_273.v : SNK锁存芯片 zmc.v : Z80 内存控制器(可以是 ZMC2 的一部分) 外部存储器 memcard.v : 存储卡 rom_l0.v :收缩查找表(L0)ROM rom_sp.v:系统程序(SP-S2 BIOS)ROM rom_sfix.v : 嵌入式修复图形 ...
dotnetbar.snk文件删掉就行了,可编译通过,.net framework 2.0可用。
ILMerge.exe 系统文件 程序缺失文件 丢失文件 ILMerge是一个可用于将多个.NET程序集合并为单个程序集的实用...而且,如果主组件具有强名称,并提供了.snk文件,则使用指定的键重新签名目标程序集,以使其具有强名称。
// 密钥的文件。 // (*) 如果 KeyFile 和 KeyName 值都已指定,则 // 发生下列处理: // (1) 如果在 CSP 中可以找到 KeyName,则使用该密钥。 // (2) 如果 KeyName 不存在而 KeyFile 存在,则 // KeyFile 中的密钥...
这使伟大的用法github动作- uses : Platane/snk@master with : github_user_name : platane gif_out_path : dist/github-contribution-grid-snake.gif svg_out_path : dist/github-contribution-grid-snake.svg互动...
ABB接线端子 - SNK 系列产品说明书pdf,ABB接线端子 - SNK 系列产品说明书:单个端子可带标志从端子排上独立取下,端子条安装后, 标志号彼此间独立,标志在任何状态下均可保留在端子上,标志可手写
PlayStation 2 - Capcom vs SNK 2游戏里面春丽的人物素材
1.在文件 'F:\工作\数据库\单点登录\WINNING_SSO.mdf' 中、偏移量为 0x0000000061c000 的位置执行 读取 期间, 操作系统已经向 SQL Server 返回了错误 21(设备未就绪。)。SQL Server 错误日志和系统事件日志中的其他...
这会将指定的值作为强名称密钥文件(例如MyKey.snk)添加到项目文件中,并将“将程序集签名”设置为“true”。 4、Visual Studio扩展 现在,所有Visual Studio扩展都是从单个VSIX文件安装的。 5、一般改进 除了上面...
生成key.snk方式 不管编译exe还是dll,都需要先生成key.snk,$key = 'BwIAAAAkAABSU0EyAAQAAAEAAQBhXtvkSeH85E31z64cAX+X2PWGc6DHP9VaoD13CljtYau9SesUzKVLJdHphY5ppg5clHIGaL7nZbp6qukLH0lLEq/vW979...