ASP.NET编程:浅谈 DotNet 回护中字符串加密的手艺
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。加密|字符串<Pstyle="TEXT-INDENT:2em">进修过了称号搅浑,比来又看了一些字符串加密方面的器材。在搅浑回护和加密壳中都有字符串加密回护功效。<Pstyle="TEXT-INDENT:2em">整体上字符串加密能够分为两类,第一类是搅浑回护中的字符串加密手艺。次要特性是修正代码实行路径。年夜部分搅浑回护工具的字符串加密都是这一类。<Pstyle="TEXT-INDENT:2em">第二类就是加密壳中的字符串加密手艺。这类不必修正IL代码,间接对元数据中的字符串加密。这一类以remotesoft,maxtocode为代表。<Pstyle="TEXT-INDENT:2em">先看第一类,加密完成大抵以下。<Pstyle="TEXT-INDENT:2em">加密前:<Pstyle="TEXT-INDENT:2em">MessageBox.Show("HellowWorld!");<Pstyle="TEXT-INDENT:2em">加密后:<Pstyle="TEXT-INDENT:2em">MessageBox.Show(Helper.Decode("A34579dfbbeyu346563345/=="));<Pstyle="TEXT-INDENT:2em">复杂的说就是将本来利用字符串的中央,将间接利用字符串改成直接利用字符串。在这里回护软件将字符串"HellowWorld!"举行加密失掉了局"A34579dfbbeyu346563345/=="。Helper.Decode是回护软件供应的一个解密函数,它完成将"A34579dfbbeyu346563345/=="复原为"HellowWorld!"。<Pstyle="TEXT-INDENT:2em">由于是搅浑回护,以是我们能够剖析失掉Decode的代码。然后间接用这个函数的代码写一个小工具将程序会合一切加密的字符串都复原。天生一个字符串对应表。以便利代码浏览和调试。<Pstyle="TEXT-INDENT:2em">假如再深切,能够完成主动将字符串复原到原程序会合。<Pstyle="TEXT-INDENT:2em">再来看下面例子的IL代码。<Pstyle="TEXT-INDENT:2em">加密前:<Pstyle="TEXT-INDENT:2em">ldstr"HellowWorld!"callMessageBox.Show(string)<Pstyle="TEXT-INDENT:2em">加密后:<Pstyle="TEXT-INDENT:2em">ldstr"A34579dfbbeyu346563345/=="callstringHelper.Decode(string)callMessageBox.Show(string)<Pstyle="TEXT-INDENT:2em">怎样复原,实在很复杂,我们已晓得了decode的代码,并且已能完成字符串的解密了。失掉了字符串的对应表。<Pstyle="TEXT-INDENT:2em">间接将<Pstyle="TEXT-INDENT:2em">ldstr"A34579dfbbeyu346563345/=="callstringHelper.Decode(string)交换为<Pstyle="TEXT-INDENT:2em">ldstr"HellowWorld"
便可。写一个小工具利用正则表达式搜刮交换就能够了。<Pstyle="TEXT-INDENT:2em">第二类字符串加密回护:<Pstyle="TEXT-INDENT:2em">完成就是间接对元数据中的String流举行加密。<Pstyle="TEXT-INDENT:2em">这类回护有一个缺点,程序运转后元数据中的String流会解密后在内存中完全复原。在我后面的文章内里有先容元数据的dump。这里就不反复罗嗦了。关于第一类字符串加密回护,另有别的的情势,如Helper.Decode这个函数能够是一个native的函数。大概是和流程搅浑分离。
我觉得很重要,一般所说的不重要应该指的是:你学好一种以后再学另一种就很容易了。(因为这样大家可能有一个错觉就是语言不是很重要,只要随便学一种就可以了,其实不是这样的。 ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。 关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。 最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。 ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
页:
[1]