强名称的原理(strong name)
来源:互联网 发布:centos sftp目录修改 编辑:程序博客网 时间:2024/05/02 06:45
强名称是一项在.net平台上的技术,它是来源于数字签名。数字签名的核心是非对称加密(RSA,EL Gamal)和Hash算法(MD5,SHA)。
利用sn.exe可以创建强名称的程序集:
sn.exe -k PublicPrivateKeyFile.snk
sn会随机的产生一对1024bit的密钥,你可以用他们进行加密解密了。你还可以把公钥从文件中分离出来:
sn.exe -p PublicPrivateKeyFile.snk PublicKeyFile.snk
如果你同时具有公钥和私钥,就可以使程序集具有强名称否则只能DelaySign了。
// C#
using System.Reflection;
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("PublicPrivateKeyFile.snk")]
强名称并不安全,我们可以将他清除出去,参见http://www.codeproject.com/dotnet/NeCoder03.asp ,但我们在什么情况下可以用他呢?
版本信息
鉴定
强名称可以阻止DLL Hell的出现,开发者们能够以同样的名字发布他们的程序集。拥有强名称的程序集具备唯一的标识且储存在不同的空间。
强名称第二个重要的特点是可以使我们确定代码是否是原始的版本。
实现过程如下:
利用sn.exe可以创建强名称的程序集:
sn.exe -k PublicPrivateKeyFile.snk
sn会随机的产生一对1024bit的密钥,你可以用他们进行加密解密了。你还可以把公钥从文件中分离出来:
sn.exe -p PublicPrivateKeyFile.snk PublicKeyFile.snk
如果你同时具有公钥和私钥,就可以使程序集具有强名称否则只能DelaySign了。
// C#
using System.Reflection;
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("PublicPrivateKeyFile.snk")]
强名称并不安全,我们可以将他清除出去,参见http://www.codeproject.com/dotnet/NeCoder03.asp ,但我们在什么情况下可以用他呢?
版本信息
鉴定
强名称可以阻止DLL Hell的出现,开发者们能够以同样的名字发布他们的程序集。拥有强名称的程序集具备唯一的标识且储存在不同的空间。
强名称第二个重要的特点是可以使我们确定代码是否是原始的版本。
实现过程如下:
- 强名称的原理(strong name)
- 关于.Net的强名称(Strong Name)
- 强名称程序集(strong name assembly)——为程序集赋予强名称
- 将COM签发成具有强名称(Strong Name)的结果程序集(Assembly)
- C#程序集使用强名字(Strong Name)签名/强名称签名
- 强名介绍Strong Name
- 如何使一个你没有源代码的DLL文件变为强命名的(Strong Name)
- 如何使一个你没有源代码的DLL文件变为强命名的(Strong Name)
- 没有源代码的DLL文件变为强命名的(Strong Name)
- 强引用(Strong Reference)
- 如何创建强命名程序集(Strong Name Assembly
- 强引用(strong)\弱引用(weak)\unsafe_unretained的区别
- strong name
- Strong Name
- .NET的强名称
- 关于.net assembly的strong name问题
- java中的强引用(Strong Reference)
- java中的强引用(Strong Reference)
- 最近用到的Delphi组件
- asp.net 2.0中的全球化与本地化
- 局域网内用ServerU建立ftp服务器
- 我的博客开张了!
- 在asp.net 2.0中使用主题
- 强名称的原理(strong name)
- mojoPortal的安装
- 在Batik中使用DOM MutationEvent实现SVG绘图的Undo/Redo
- mojoPortal介绍
- 随笔
- 设置代理服务器 经过不懈的努力,终于取得进展
- std::string的工具函数 - 用ostringstream实现repeat
- Windows 2000/03域和活动目录上手概述
- MSNtoGoogleTools Release