.net 程序集 加密问题

.net 程序集 加密问题,第1张

基本上目前还没好的解决办法。

1)MaxtoCode(收费)加密后,Reflector不能反编译。轮贺宏

不知道现在是否支持加密dll文件。

2)XenoCode混淆器

类库混淆时,只选择私拍胡有方法进行混淆,应该可以编译使用的。

类库函数写法:

public int fn()//混淆后这个函数名不变,便于调用程序识别

{

return fnEx()

}

private int fnEx() //混淆后这个函数名及大部分的内容会编腊册码

{

return 100

}

若是涉及保密的算法,改用其它语言写DLL。

.Net软件

特点,

些强

编译工具

.Net

执行文件进行反编译 *** 作,并

相应

IL代码甚至

源代码

即使

采用混淆工具

及强命名工具

根本

解决问题,代码依

容易

Reflectoer等工具反编译源代码

软件加密狗:威步(WIBU)

CodeMeter,AxProtector(for.net)两款软件加密狗性能非

反编译

问题,与传统

代码混淆工具(Obfuscator)

同,AxProtector

完全阻止

.NET

程序集(由

C#,

VB.NET,

Delphi.NET,

ASP.Net…

等语言编写)

反编译

通俗

讲,AxProtector

破解者

.NET

代码

间构建

防破解保护屏障,

基于

Windows

基于

MSIL

兼容格式文件

原始

.NET

代码完整

加密

封装

代码内,

论何

释放

硬盘,

于破扮伍解者

与单纯

.net加密软件

同,AxProtector与CodeMeter硬件加密狗配套餐使用,采用

严密

密钥管理,及

先进

AES、RSA、ECC等加密算

存储或传输密钥,保证通讯安全

.Net代码编译

.class

包含

源代码

信息(

包括注释),尤其

保存

调试信息

按照

式编译

.class

文件

轻易

反编译

般软件

发商

采用

种叫做混淆器

工具

混淆器

作用

编译

代码进行混淆,使

反编译或者反编译

代码混乱难懂

由于混淆器

混淆

名称或流程,

能防止源代码

反编译,

混淆器

作用

增加

反编译

难度,

治标

治本

些掌握工具

说几乎

透明

AxProtector

款真

意纳配义

加密源代码、防止反编译

.net软件加密软件

AxProtector加密

.net原代码,任何

候原代码都

硬盘

采用AxProtector加密

.net代码

程序调用或执行某

段函数

候,才能通

AxProtectorClass

内存

解密

程序

执行,运行

迅速立即加密厅茄或

种随机加密、按需解密原代码

功能,能

防止.Net程序

反编译,同

能够

防止API加密点

摘除

保证

源代码

执行效率

安全性

string text1 = "123456"

//尘粗帆方法1:引用了System.Web程序集的使用方法。

string md5Result = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile( text1, "MD5"派雹 )

string sha1Result = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile( text1, "SHA1" )

//方法2:未引用System.Web

byte[] text1Bytes = System.Text.Encoding.UTF8.GetBytes( text1 )

MD5 md5 = MD5.Create()

byte[] md5Bytes = md5.ComputeHash( text1Bytes )

StringBuilder md5ResultBuilder = new StringBuilder( 32 )

for ( int i = 0i <md5Bytes.Lengthi++ )

{

md5ResultBuilder.AppendFormat( "{0:X2}", md5Bytes[ i ] )

}

string md5Result1 = md5ResultBuilder.ToString()

SHA1 sha1 = SHA1.Create()

byte[] sha1Bytes = sha1.ComputeHash( text1Bytes )

StringBuilder sha1ResultBuilder = new StringBuilder( 40 )

for ( int i = 0i <sha1Bytes.Lengthi++ )

{

sha1ResultBuilder.AppendFormat( "{0:X2}", sha1Bytes[ i ] )

}

string sha1Result1 = sha1ResultBuilder.ToString()

PS:Encoding 的命名空间是 System.Text

MD5和SHA1的命名空间是System.Security.Cryptography

MD5加密结果是凳余 128位,即16字节,转换成字符串,就是32个字符。

SHA加密结果是 160位,即20字节,转换成字符串,就是40个字符。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12400243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存