Visual Studio中的.net程序集防止被恶意篡改的方法(.net程序集强签名)

.NET CLR提供了一套公钥/私钥加密技术,主要是为了解决程序集唯一性标识的问题,这样一来,如果有两个程序集他们的名称、版本一样也不会产生冲突。这个技术也顺带解决了程序被恶意篡改的问题,在命令行中使用SN命令来生成私钥并对程序集签名,比较麻烦,好在宇宙第一IDE(visual studio)集成了这个命令,可以很容易地生成**为程序签名。
在程序集右键–>属性–>签名中勾选“为程序集签名”,
Visual Studio中的.net程序集防止被恶意篡改的方法(.net程序集强签名)
在“选择强名称**文件”选项中选择新建,在弹出的窗体的输入**文件名称、**文件的保护密码(可选),以及选择签名算法。
Visual Studio中的.net程序集防止被恶意篡改的方法(.net程序集强签名)
这样**文件就创建好了,文件的位置就在程序集这个目录下面(.pfx文件),你也可以讲他复制出来供其他的程序集使用,在程序编译时就会用这个**文件为程序集签名,但是一定要保存好这个文件。
Visual Studio中的.net程序集防止被恶意篡改的方法(.net程序集强签名)
现在可以把**文件删除试试,然后重新编译程序,可以发现报下面的错误,无法编译,这就达到了防止程序集被恶意篡改的目的。(当然,防君子不防小人,既然代码都拿到了,如果真有人想改你的东西直接新建一个项目把代码全部复制过去就完了)
Visual Studio中的.net程序集防止被恶意篡改的方法(.net程序集强签名)