C# 强命名程序集,防止dll被修改,混淆下发布

管理员方式运行

生成snk

Bash

SN -k C:\qiny.snk

然后拷贝到程序集去

然后查看属性,找到签名 tab,选择那个snk文件

此时,该密钥对并未与项目的程序集建立关联,我们需要打开项目(Project)的AssemblyInfo.cs 文件。此文件具有一个程序集属性列表,默认情况下,在 Visual Studio .NET 中创建项目时将包括这些属性。在代码中修改名为“AssemblyKeyFile”的属性,如下所示:

[assembly:AssemblyKeyFile("ayui.snk")]

这样,编译该项目即生成强命名的程序集。

然后找个工具简单混淆下代码,就可以发布你的dll给别人用了,真的有人想破解你的,你也是没办法

原文地址:https://www.cnblogs.com/keim/p/8411112.html

时间: 2024-10-09 21:36:14

C# 强命名程序集,防止dll被修改,混淆下发布的相关文章

强命名程序集,签名,延迟签名

强命名程序集 如果一个程序集有一个唯一的标记,那么这个程序集就可以叫做强命名程序集.在.NET框架中是通过公钥/私钥加密来产生这个唯一标记的.一个强命名程序集包含四个唯一标志程序集的特性:文件名(没有扩展名),版本号,语言文化信息(如果有的话),公有秘钥. 这些信息存储在程序集的清单(manifest)中.清单包含了程序集的元数据,并嵌入在程序集的某个文件中.下面的字符串标识了二个不同的程序集文件: “MyType, Version=1.0.1.0,Culture=neutral, Public

学习 第三章CLR共享程序集和强命名程序集

CLR 支持两种程序集:弱命名程序集(weakly named assembly)和强命名程序集(strongly named assembly) 程序集可采用两种方式部署:私有和全局 弱命名程序集只能以私有方式部署 强命名程序集部署即可私有又全局. 强命名程序集具有4个重要特性:文件名(不计扩展名),版本号,语言文化,公钥 例如:"MyTypes,Vesion=1.0.8123.0,Culture=neutral,PublicKeyToken=b77a5c561934e89" 注意:

CLR 关于强命名程序集 .

如何创建强命名程序集(Strong Name Assembly)     创建一个强命名程序集首先需要获得一个用强命名实用工具   (Strong Name Utility,即SN.exe,.NET SDK自带)产生的密钥.   下面简要介绍一下SN.exe的一些用法. 要产生一个公钥/私钥对:     a)SN –k MyCompany.Keys   该命名告诉SN.exe创建一个名为MyCompany.keys的文件.MyCompany.keys文件将包含以对以二进制格式存储的公有密钥和私有

使用强命名程序集防范篡改

CLR支持两种程序集:强命名程序集.弱命名程序集,两者的区别在于,强命名程序集是被发布者使用了自己的公钥/私钥对进行了程序集的签名,能唯一性标识程序集的发布者的程序集,并且可以使用密钥对程序集进行唯一性标识.保护和版本控制,这里所提到的保护就是我们需要一起讨论的程序集防篡改. 首先我们一起来看个例子,这样能简单明了地说明使用强命名程序集的必要性. 我们建立一个WinForm程序Nick.WinFormApp,添加一个登录窗体,并且在此项目内引用名为Nick.AuthProvider的程序集,用于

如何创建强命名程序集, 如何查看强命名程序集的PublicKeyToken

1. 在Visual Studio中的class library工程上点右键, 选择properties. 2.  选择左边的Signing选项卡. 3. 勾选Sign the assembly复选框. 在下拉列表中选择<New...>. 4. 在弹出的对话框中给snk文件起一个名字. 按OK. 5. 程序集强命名完成. 如何查看强命名程序集的public key token ========================= 有时候你需要在web.config文件中或者其他地方引用自己写的强

第三章 共享程序集和强命名程序集

1. 概述 本章的重点是如何创建可由多个应用程序访问的程序集. 2. 名词解释 ① 公钥标记:从公钥派生的一个小的哈希值. 3. 主要内容 3.1 两种程序集,两种部署   CLR支持两种程序集:弱命名程序集 和 强命名程序集. 一个程序集可以采取两种方式来部署:私有 或 全局. 弱命名程序集只能私有部署,强命名程序集两种部署皆可. 3.2 为程序集分配强名称 强命名程序集具有四个重要组成部分: ① 一个文件名 ② 一个版本号 ③ 一个语言文化标识 ④ 一个公钥(一般用 公钥标记). 用SN.e

03.共享程序集和强命名程序集

进行私有部署时,程序集放在应用程序的基目录(或者它的一个子目录)中的,这个应用程序专用的.以私有方式部署程序集,可以对程序集的命名.版本和行为进行全面的控制 CLR支持两种程序集,一种是弱命名程序集,一种是强命名程序集 强命名程序集使用发布者的公钥/私钥对进行签名,它唯一性地标识了程序集的发布者 弱命名程序集只能进行私有部署,"全局部署的程序集"是部署到一些已知的位置的程序集 强命名程序集 具有4个重要的attributes,它们共同对程序集进行唯一性标识:一个文件名.一个语言文化,一

共享程序集和强命名程序集(下)

1.1   强命名程序集能防篡改 1.2   延迟签名. 1.3   私有部署强命名程序集 1.4   "运行时"如何解析类型引用 1.5   高级管理控制(配置) 原文地址:https://www.cnblogs.com/lzcgis/p/10251725.html

共享程序集和强命名程序集(上)

1.1   两种程序集,两种部署(待更新...) 两种程序集:弱命名程序集,强命名程序集.两者结构完全相同.区别:强命名程序集使用发布者的公钥/私钥进行签名. 部署:私有或者全局. 1.2   为程序集分配强名称 1.3   全局程序集缓存 1.4   在生成的程序集中引用强命名程序集 原文地址:https://www.cnblogs.com/lzcgis/p/10251718.html

强命名程序集组成与作用

强命名 由一个程序集的标识组成并通过公钥和数字签名(针对该程序集生成)加强的名称,其中的标识包括程序集的简单文本名称.版本号和区域性信息(如果提供的话). CLR需要支持某种机制来唯一的标识一个程序集.这就是所谓的强命名程序集..Net使用Name.Version.Culture.PublicToken四个属性来唯一标识一个程序集.强命名程序集正是使用RSA(非对称算法)生成的公钥/私钥来保证public Token的唯一性,.net在编译项目时将指定的公钥/私钥写入程序集来保证其唯一性.