45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:Asp.NET强签名集锦

Asp.NET强签名集锦

2016-07-07 14:11:24 来源:www.45fan.com 【

Asp.NET强签名集锦

强签名:

1. 可以将强签名的dll注册到GAC,不同的应用程序可以共享同一dll。

2. 强签名的库,或者应用程序只能引用强签名的dll,不能引用未强签名的dll,但是未强签名的dll可以引用强签名的dll。

3. 强签名无法保护源代码,强签名的dll是可以被反编译的。

4. 强签名的dll可以防止第三方恶意篡改。

强签名大家并不陌生,如下图所示:

Asp.NET强签名集锦

如果代码是机密的,还需要用到 仅延迟签名, Asp.NET强签名集锦

--------------------------------------------------------------------------------

如果只这样做了,代码中没什么逻辑判断,代码还是不够安全的:

1. Strong Name Remover 工具可以很容易的清除你的签名,如下图:

Asp.NET强签名集锦

2. 签名替换工具,如下图:

Asp.NET强签名集锦

所以,仅仅有签名是不够的,还需要在代码中判断程序集中是否有签名,且签名是自己的。

--------------------------------------------------------------------------------

接下来,需要做的工作如下:

1. public key token

在 Visual Studio Tools 中找到命令提示,启动并执行 ”sn -Tp 你的程序集“

Asp.NET强签名集锦

2. 代码

string wszFilePath = Assembly.GetExecutingAssembly().Location;
Debug.WriteLine(wszFilePath);
bool fForceVerification = true;
bool pfWasVerified = false;
bool bFlg = StrongNameSignatureVerificationEx(wszFilePath, fForceVerification, ref pfWasVerified);
if (!bFlg)
{
throw new Exception(_sLicenseErr + " 0x0001");
}
byte[] data = Assembly.GetExecutingAssembly().GetName().GetPublicKeyToken();
if (data.Length == 0)
{
throw new Exception(_sLicenseErr + " 0x0002");
}
StringBuilder sb = new StringBuilder();
foreach (byte b in data)
{
sb.AppendFormat("{0:x2}", b);
}
string sPK = sb.ToString();
if (sPK != "???f8f1c????ffdf")
{
throw new Exception(_sLicenseErr + " 0x0003");
}

关于Asp.NET 强签名 的相关知识就给大家介绍这么多,怎么样,通过以上内容的学习,大家对asp.net强签名知识了解了吧,后续还会持续更新,敬请关注路饭网站。


本文地址:http://www.45fan.com/bcdm/56427.html
Tags: ASP.NET DLL 签名
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部