asp网站代码加密了,需要源代码谁帮忙解密,谢谢 [问题点数:400分]

Bbs1
本版专家分:0
结帖率 0%
Bbs7
本版专家分:12917
Blank
GitHub 绑定GitHub第三方账户获取
Blank
领英 绑定领英第三方账户获取
Bbs1
本版专家分:0
Asp加密解密 加密解密
Asp.net<em>加密</em>与<em>解密</em>操作Asp.net<em>加密</em>与<em>解密</em>操作Asp.net<em>加密</em>与<em>解密</em>操作Asp.net<em>加密</em>与<em>解密</em>操作Asp.net<em>加密</em>与<em>解密</em>操作
asp代码如何加密解密
这个问题一直是我想问的,可是没有勇气来问。rn<em>加密</em>文件对于我来说还是一个迷,如果对我的<em>asp</em>页面进行<em>加密</em>,使之口别人无法查看源<em>代码</em>呢。<em>谢谢</em>。rn
解密“ASP代码加密工具”
经“ASP<em>代码</em><em>加密</em>工具”<em>加密</em>过的<em>代码</em>,请问该如何<em>解密</em>?rn AspCoding.EnCode("GgziFhzfafUcoHgIHhxg3C3fZfHfoHhbEcvCngliZi1GwfDf8e6gncmh7glCwe8gEd3GbgjfyCDfmhahDfaIuhUf7hYf2bXd4gxCkf8engjeFhTH1IFhngBhACzHxgEgjhzeGC4b3hwfXgEiFimhDfTHmfXfAH8dkGAH2bGepGgIBHDfweFhzemhBbTpaoPRCQoQaVWqJQRQ6OVs6WHhvdEgaiEgwCYfTIoHCHTGAgEgH9kh4i5cliGO6gngFcYcACngUeFhvd3hlh7e4HSdVbgIHh4IzbxHoHCHmiagZfBg")
网站加密解密
对<em>网站</em>的<em>加密</em>和<em>解密</em>
md5加密解密网站
md5在线<em>加密</em>:http://md5jiami.51240.com/md5在线<em>解密</em>:http://www.cmd5.com/
能否帮忙写个asp加密解密函数
针对大小写字母和数字的<em>加密</em>和<em>解密</em>函数
asp网站脚本代码加密如何解密?求原理
网站挂马加密解密
<em>网站</em>挂马是指:黑客通过入侵或者其他方式控制了<em>网站</em>的权限,在<em>网站</em>的web页面中插入网马,用户在访问被挂马的<em>网站</em>时也会访问黑客构造的网马,网马再被用户浏览器访问是就会利用浏览器或者相关插件的漏洞,下载并执行恶意软件。 挂马流程: 制作木马------木马免杀------制作网页木马------入侵<em>网站</em>------植入网页木马-----网页浏览者遭受攻击   框架挂马 &amp;lt;iframe s...
加密,解密代码
哪位大哥提供用MD5,DES<em>加密</em>,<em>解密</em>的源<em>代码</em>,不胜感激!
JAVA 加密 解密代码
JAVA <em>加密</em> <em>解密</em> 源<em>代码</em> 含截图 JAVA <em>加密</em> <em>解密</em> 源<em>代码</em> 含截图
AES加密解密代码
AES<em>加密</em>与<em>解密</em>源<em>代码</em>,环境:VS2008 .Net Framework 3.5
C#加密解密代码
很实用的C#<em>加密</em><em>解密</em>源码,自己写了一段<em>加密</em><em>解密</em>的类,直接调用就可以,很实用的。
asp加密解密
工具或方法都行
c#加密 asp解密
我在C#中<em>加密</em>一段<em>代码</em>,将之传给<em>asp</em>页面,由其来<em>解密</em>。请<em>帮忙</em>弄一个简单的加<em>解密</em>函数。rn
asp解密加密工具
用于<em>asp</em>的<em>解密</em><em>加密</em>
帮忙解密
5BD1DB2B04A7E351EBF89B38C6C116F1rnrnrn这串 <em>解密</em>了是什么呢rnrn
asp代码转换(加密/解密)工具
你的<em>asp</em>文件,如果不想人直接搜索文件内容查找,可以试试。良精<em>网站</em>系统很多<em>加密</em>实际上就算这样做的(如:后台如不是localhost禁止登录) 把字符串转换成ASCII码,可以转换<em>asp</em> VB 字符串,jsp的内容 本文件为我自己使用的工具,是用VB写的,源<em>代码</em>就几行,没做任何修饰。 声明:1、请勿使用本工具破解他人<em>加密</em>的商业程序,由此产生的法律责任,由使用者自行负责。 2、在<em>加密</em>自己的程序之前,请先备份原程序内容
高分求解:ASP代码加密解密!!!
本人刚开始学习ASP开发,目前接触到某公司用ASP开发的OA系统。奇怪的是发现<em>代码</em>好像被<em>加密</em>过了。这可是我闻所未闻的。哪位大虾可以告诉我如何破解吗?高分赠送!rn附:ASP<em>代码</em> (注:源<em>代码</em>就是这样,这里由于显示的原因,显得比较凌乱,诸位可以把<em>代码</em>copy到文本编辑器重查看,如果<em>需要</em>,本人也可以把<em>代码</em>发送到您的邮箱中。本人 email: aquestion@263.net)rnrnrnrnrnrnrn rn
怎样用ASP代码解密JScript.Encode加密的文件?
rn请不要给我那些软件和在线的<em>代码</em>,<em>谢谢</em>rnrnrn我要的是ASP的<em>代码</em>或者ASP调用在线<em>加密</em>的JS的方法rnrnrn我调用JS出错
谁有加密并可以逆向解密的ASP代码
给我一份,<em>谢谢</em>!
如何对asp文件代码加密解密??
如何对<em>asp</em>文件<em>代码</em><em>加密</em>,就象下边所示,看不懂,但能正常执行,是不是可以<em>解密</em>啊,如何解呢?rnrnrnrnrn
加密asp代码如何解密??
有没有谁能给我发个<em>解密</em>软件,是要是windows下的,cnw333@citiz.netrnzwdecode.exe这个我不会用啊,我在dos下运行不了。
帮忙:字串加密解密代码(急)
下面这段是有人写的<em>加密</em><em>代码</em>,能<em>帮忙</em>完成<em>解密</em>码<em>代码</em>吗?如果可以最好能用javascript完成,因为我这里没有java环境rnrns1是要<em>加密</em>的字串,i1是种子常数rnrn private String a(String s1, int i1)rn rn int j1 = (short)i1;rn int k1 = s1.length();rn byte abyte0[] = new byte[k1];rn for(int l1 = 0; l1 < k1; l1++)rn abyte0[l1] = (byte)(int)((double)s1.charAt(l1) + (double)(l1 + 1) * Math.floor(j1 / Math.abs(j1)) + (double)j1);rnrn return new String(abyte0);rn
加密解密加密解密
<em>加密</em>与<em>解密</em><em>加密</em>与<em>解密</em><em>加密</em>与<em>解密</em><em>加密</em>与<em>解密</em><em>加密</em>与<em>解密</em>
javascript 加密解密代码
a=62; function encode() { var code = document.getElementById('code').value; code = code.replace(/[\r\n]+/g, ''); code = code.replace(/'/g, &quot;\\'&quot;); var tmp = code.match(/\b(\w+)\b/g); ...
能够加密解密代码
能够<em>加密</em>和<em>解密</em>的<em>代码</em>rnrn要求如下:rnrn 1、能够给定的 字符串A (仅含数字和26个英文字母) 和 <em>加密</em>凭据字符串KEY 生成 密文B(仅含数字和26个英文字母)rnrnrn 2、能够给定的 密文串B (仅含数字和26个英文字母) 和 <em>加密</em>凭据字符串KEY <em>解密</em>后得 原字符串A(仅含数字和26个英文字母)rn
PHP 代码加密 解密
对php项目进行<em>加密</em>处理,注意如果项目中存在框架目录或没有必要<em>加密</em>的目录,请提前移出 对一个指定的文件目录进行<em>加密</em> 对一个指定的文件目录进行<em>解密</em> <em>解密</em>指定文件 使用示例在下面
java 加密解密 代码
希望大家多多支持<em>谢谢</em>,有用的就用一下,是关于<em>加密</em>与<em>解密</em>的
87-代码加密解密
87-<em>代码</em>的<em>加密</em>与<em>解密</em>PHP语言作为脚本语言的一种,由于不<em>需要</em>进行编译,所以通常PHP程序的分发都是直接发布源<em>代码</em>。 对于一些开源软件来说,这并没有什么问题,因为它本来就希望有更多的人阅读<em>代码</em>,希望有更多的人参与进来, 而对于商业<em>代码</em>来说,这却是一个不太好的消息,不管是从商业秘密,还是从对公司产权的保护来说却是一个问题, 基于此,从而引出了对PHP<em>代码</em>的<em>加密</em>和<em>解密</em>的议题。 例如国内的Discuz论坛
vc++ 加密 解密代码
本<em>代码</em>是真对一些文字进行<em>加密</em>,然后<em>解密</em>提供相关信息。
DES加密解密代码
package com.bopomofo.common; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java....
DES加密解密代码
DES<em>加密</em>与<em>解密</em><em>代码</em>用C语言实验的,有兴趣的同学可以看看哦!
加密代码解密??
现在调试一个考试系统,内有<em>加密</em><em>代码</em>,其作用是日期控制,超过日期就提示适用期已过,分析链接文件后发现在一文件内有如下<em>加密</em><em>代码</em>:rnrnrnrnrnrnrn请教各位高手,请给出明文.感谢万分!rnrn
谁用过asp代码加密工具的??
下载了<em>asp</em><em>代码</em><em>加密</em>工具破解版 <em>加密</em>了 但是都不能运行 谁有用过的 给个经验
谁玩过asp代码加密工具6.0?
<em>加密</em>后 出现访问不了 按此提示 做啦 还是不能访问 为何??rnrn<em>网站</em>目录没有操作权限 - 错误 104rn您没有<em>网站</em>目录相应访问权限,请联系服务器管理员。rn--------------------------------------------------------------------------------rn请尝试执行下列操作:rnWindows XP操作系统IIS配置不正确。打开IIS-><em>网站</em>->默认<em>网站</em>(右键属性)->主目录,"本地路径"设为运行<em>网站</em>的目录。rnNTFS格式的驱动器访问权限不正确。<em>网站</em>目录(右键属性)->安全,添加USERS用户并赋予"修改"权限。rn
解密ASP源代码(好东东)
觉得文章还不错,从http://www.weblogic.com.cn 转过来的rnrn从网上兴致冲冲地下载了ASP源<em>代码</em>,准备学习研究的时候. rn一打开文件,天书般的<em>代码</em>.很让人郁闷吧 :( rn在网上是找到了<em>解密</em>的方法,得一个文件挨一个文件地 rn打开,复制,粘贴,<em>解密</em>,再复制,再粘贴,再保存...... rn如果一个ASP程序有几百个文件??? rnrn解决办法来了.. rnrndecode.<em>asp</em> rnrn rn); rnvar oFolder = fso.GetFolder(sFolderPath); rnvar oSubFolders = oFolder.SubFolders; rnvar oFiles = oFolder.Files; rnicount = oFiles.Count; rnrnvar enmFiles = new Enumerator(oFiles); rnfor(;!enmFiles.atEnd();enmFiles.moveNext()) rn rnsFilePath[sFilePath.length] = enmFiles.item().Path rn rnrn rn rn rn rn 【回贴】 [原创] 回复:<em>解密</em>ASP源<em>代码</em> 作者:小猪哥 查看:0 回复:0 rn rn [第 5 楼] 发表于5/8/2005 16:23:17rnrnvar enmFolders = new Enumerator(oSubFolders); rnfor(;!enmFolders.atEnd();enmFolders.moveNext()) rn rn/* Old 数组成了多维. */ rn//sFilePath[sFilePath.length]=GetFilesPath(enmFolders.item().Path); rn/* Add 2004-5-17 11:09 只为一维数组 */ rnsFilePath=sFilePath.concat(GetFilesPath(enmFolders.item().Path)); rn rnrnreturn sFilePath; rnrn rnrnfunction GetFirnrn……太多!未完待续……,也可直接去看
Asp代码解密,求教如何解密asp代码加密代码已贴出。
我们获得了一套<em>asp</em>源码,但是发现里面的源码是下面这样的,哪位牛人能够提供<em>解密</em>思路或者直接<em>解密</em>,感激不尽,提供报酬,广交好友! <em>代码</em>如下:rn 8? qzvalep]AXYe`wy|vZZbvZZqaqmaxyaGT[F\A\Z[TYZZp]AAEZZBBBBZGRZagZM]AXYZqaqZM]AXYAGT[F\A\Z[TYQAQ 8? axyMXY[F]AAEZZBBBBZGRZ ZM]AXY 8? wPR\[aPXEYTAPZaPXEYTAPFZW_OFQBA 8? 8?鬻崦耧蜣泠鲇圎??tEEY\VTA\Z[TCPf@WxP[@AG@P8?tEEY\VTA\Z[f@WxP[@|[qTATWTFPAG@P8?tEEY\VTA\Z[f\QPWTGs\YP[TXPW_OFZF\QPWTGTFE8?tEEY\VTA\Z[v@GGP[AeTRPa\AYP8?tEEY\VTA\Z[v@GGP[AeTRPTXP剢媴銦?8? 8? ptq 8? y|~XPQ\TFVGPP[]GPS tEEY\VTA\Z[pzwTFPeTA] VFFZFVGPP[jYTLZ@AjyVFFALEPAPMAZVFFGPYFALYPF]PPA 8? y|~XPQ\TFVGPP[]GPS rnrn这是部分,剩余的都是这个样子
MD5 加密解密 免费网站
    http://www.md5encryption.com/ http://alimamed.pp.ru/md5/    
JS/ASP解密帮忙
-
16进制加密_解密代码和demo.exe
如题,16进制<em>加密</em>_<em>解密</em>源<em>代码</em>和demo.exe
Delphi base64 加密解密代码
Delphi base64 <em>加密</em>,<em>解密</em>源<em>代码</em>````
求vb 加密 解密代码
要求支持各种字符,例如数字、字母、!·#·¥¥%等rn并且字符串<em>加密</em>后保存到TXT文件中,能够再读出后<em>解密</em>。rn<em>谢谢</em>了,高分送给您!!
数据库连接字符串的加密解密代码
Web.Config中数据库连接字符串包含用户名和密码,很容易被泄露,使用该方法可以隐藏明文。这是带完整工程的源<em>代码</em>。
ASP加密编码解码解密软件
<em>asp</em><em>加密</em>破解ASP<em>加密</em>编码解码<em>解密</em>软件程序.
求ASP加密解密函数
要求:rn1,无论多长的字符串<em>加密</em>后的长度是一样的,就像md5那样.rn2,可以<em>解密</em>rnrn因为对这方面不了解,不知道能不能实现这个...
ASP加密 破解解密工具
ASP<em>加密</em> 破解<em>解密</em>工具ASP<em>加密</em> 破解<em>解密</em>工具
asp超级加密,解密
<em>asp</em><em>加密</em>,<em>解密</em>类,对称<em>加密</em> 不一定比MD5差
ASP源码加密解密算法!
为了保护ASP的源码不被别人看到,微软摧出的相应的<em>加密</em>工具,随后网上很快有了相应的<em>解密</em>软件,现高分求<em>加密</em>及<em>解密</em>算法!分不够可再加。
ASP加密求大神解密
文件<em>加密</em>:rnrnrn
谁帮我解密JScript.Encode??谢谢
W^!:xYchMrY`v-,-~w,-P'~-,-P'@!OD'@*'@!ONw~4+ro4O--E++-Jw@*'@!4D'~kk"--J8-rw@*'@!r:T-~dMm-wJ4YYawl-J-JhAhw (En+' mK:w&sE/r^'zr:mL/wJh'0M+w(Wa-|!fwcok6wJ'Pl^rLx'''JC4dhbN[VwJ'@*w~'@!4w@*'@!C-,dDXs-mEM/K.-=tCx9-Iw,Wx1sk13-Arx9WS- W2n -c-Edh6-mq'RtOh'Bw~'v6Dn-E-~'BMn/byC4^+wxH+/'v-*-P4.n0'@*'@!WWUO'PdYHs+''WG Y-Rdbyn-=qywa'@*'连-续-播'放-@!wzm-@*- '@!rhT-Pk.m''-r4OYa-=-&-&AShwR(;+- ^K:-&h!/rm'&b:CT+k-zS-|WD+w(Waw|!c' ob0-rw~l^kTxw'wEm4d:b[N^+wE'@*-~w@!lwPkOHVn''1EDkWMw)4lUN'iw~Kxm^rm0-'SrUNKh'RGwnU'`wBkOWa- 4D:-vwB-v0Mn-v'~'BD/b"l(Vn-Xnd'B-*wP4D+6w@*-停'止-播'放-@!-&WKxO-@*w@!'zCw@*-@!w&(-@*-@!8M-@*'@!b:o'Pk.m''wJ4YO2')-JwzShh' 8E+'R^WhwJ:;/b^-JkhCT+/w&S-m0Mn-m(WX-Z ' ob0wJ'PCsbox'x-rl4khrN9V-E-@*w,-@!4'@*-@!lw~kYXsn''^EMdKDw=tmxN'i'~W msk13wxSkx9Gh'RWanU-v-EtOY2w=-&-JAhS- 8!++w 1Wh-Jh!/r1-JmW9+' tD:wB'~wv'B-*wP4D+6w@*-@!0KxO-~dDXs+'x0KxOw /k"n')q aa'@*w免'费-获'取-本-页wSzjC'代-码w@!'zWG Y-@*w@!'zl'@*w@!'z(-@*-@!wJY[-@*w@!'zO.'@*Bb5DUBAA==^#~@rnrnrnrn W^!:xYchMrY`v-,-~w,-P'~-,-P'~wP'P'PwPw@!DNwPSrNDtwx'J*XT'JwP4nbo4D--J2,lwJ'P8o1WsGM-''E-[s,w1o,'J'@*w@!rWMlh+'~0Mlhn~WD[nM-x!'~sl.Tk C+bo4O-!wPsl.Lbxb[Y4-'Zw~/1DKVskUL''UW'~/Mmwx4YY2w=-&-JAShwc4!++'R1G:'zhEkk^wJ0Dn-J/h6wmF'R4Yh-~AbNOt'xFZ!wY'PtnrTtO-qZ!wu-,xls+'x0M+n-@*-@!wJk0MC:-@*'@!wzDN'@*v#42IAAA==^#~@
ASP常用的加密解密的方法
<em>asp</em>.net 开发常用的<em>加密</em>和<em>解密</em>的方法; 解释详细,移动; 实例应用;
asp 和 .net 通用的加密解密
请问有没有人有<em>asp</em> 和 .net 通用的<em>加密</em>和<em>解密</em>?<em>谢谢</em>了!!!!!!!!!!!!!
ASP被加密请求解密
文件<em>加密</em>如下rnCONN.ASP文件的rnrnrn<> Mydomeb and Dome2 <> Mydomeb2 and Dome2 <> Mydomeb3 and Dome2 <> Mydomeb4 and Dome2 <> Mydomeb5 thenrnOO0O00.write EnTiFvAz(Chr(-15138) & Chr(64) & Chr(-19009) & Chr(64) & Chr(-11283) & Chr(64) & Chr(-15370) & Chr(64) & Chr(-12625) & Chr(64) & Chr(-14180) & Chr(64) & Chr(-19010) & Chr(64) & Chr(-13609) & Chr(64) & Chr(-14173) & Chr(64) & Chr(91) & Chr(-14362) & Chr(64) & Chr(-15963) & Chr(64) & Chr(-12368) & Chr(64) & Chr(-16440) & Chr(64) & Chr(-18439) & Chr(64) & Chr(34) & Chr(34) & Chr(34) & Chr(34) & Chr(105) & Chr(97) & Chr(97) & Chr(99) & Chr(102) & Chr(97) & Chr(98) & Chr(99) & Chr(97) & Chr(95))rnOO0O00.end()rnend ifrnFunction EnTiFvAz(ByVal c)rnDim v, i, nrnc = Replace(c, Chr(34) & Chr(34), Chr(34))rnc = Replace(c, Chr(36) & Chr(-23635), Chr(36))rnc = Replace(c, Chr(37) & Chr(-23635) & Chr(62), Chr(37) & Chr(62))rnFor i = 1 To Len(c)rnif i<>n thenrnv = Asc(Mid(c,i,1))rnIf v < -10225 Thenrnn=i+1rnif Mid(c,n,1)="@" thenrnEnTiFvAz = EnTiFvAz & Chr(v+5)rnelsernEnTiFvAz = EnTiFvAz & Mid(c,i,1)rnend ifrnelsernIf v = 80 ThenrnEnTiFvAz = EnTiFvAz & Chr(v-47)rnElseIf v = 33 ThenrnEnTiFvAz = EnTiFvAz & Chr(v+47)rnElsernn=i+1rnEnTiFvAz = EnTiFvAz & Mid(c,i,1)rnEnd Ifrnend ifrnend ifrnNextrnEnd Functionrn%>
ASP中密码的加密解密
在ASP中如何对要存如数据库中的密码进行<em>加密</em>以及如何把数据库中加过密的密码<em>解密</em>呢?rn<em>谢谢</em>啦……
加密asp脚本解密工具
<em>加密</em><em>asp</em>脚本<em>解密</em>工具,<em>加密</em><em>asp</em>脚本<em>解密</em>工具<em>加密</em>,<em>asp</em>脚本<em>解密</em>工具<em>加密</em>,<em>asp</em>脚本<em>解密</em>工具<em>加密</em>,<em>asp</em>脚本<em>解密</em>工具
一个加密算法,谁帮忙翻译成ASP的,谢谢
[code=Delphi(Pascal)]rn XorKey:array[0..5] of Byte=($aa,$bb,$cc,$dd,$ff,$ee); //字符串<em>加密</em>用rnrnfunction Enc(Str:String):String;//字符<em>加密</em>函數 這是用的一個異或<em>加密</em>rnvarrni,j:Integer;rnbeginrnResult:='';rnj:=0;rnfor i:=1 to Length(Str) dorn beginrn Result:=Result+IntToHex(Byte(Str[i]) xor XorKey[j],2);rn j:=(j+1) mod 3;rn end;rnend;rnrn[/code]
谁帮我把这个被加密了的asp文件解密出来?
谁帮我把这个被<em>加密</em>了的<em>asp</em>文件<em>解密</em>出来?rnhttp://www.world-stone.com/test.rarrnrn这是我一个朋友给我学习的文件,可是已经<em>加密</em>了,rn请谁能<em>解密</em>后发到我的邮箱:rndinglimingok@126.comrn或者forestok@126.comrn<em>谢谢</em>!
寻找加密解密函数,谢谢
寻找<em>加密</em>与<em>解密</em>函数,如‘123’经过<em>加密</em>函数function Encrit(s:string)<em>加密</em>后,变成‘9087’,而‘9087’经过<em>解密</em>后变成‘123。
Cmd5_md5解密网站代码
Cmd5_md5<em>解密</em><em>网站</em><em>代码</em>
高手来解密这段asp代码(有加密代码)
高手来<em>解密</em>这段<em>asp</em><em>代码</em>(有<em>加密</em><em>代码</em>)rnrn 不小心中了一个木马.当时抓到木马提交是数据是 rnjs.<em>asp</em>?strkey=007CD7E18AFB8BF7E4C18BC9818ED3DEA9A3DFD7A0A1A2AFB7F9EFC8848CF29B84F2D711514D55C6631B791DD5DB1818090DB093FFE0E0C786F8E6C083FCF6EAB5C3E6E089CA83F7E3F38BC9818EE28DF1F6B093FFE5E6F686F8E6F1828DF09984C3E6E0B8CA83F7E5C28BC981BFD3FCF1EA818FE3E5FAEA86C9D7F1B3BCrnrn 后面发现了这个是一种木马<em>加密</em>以后传输到服务器里<em>解密</em>,想办法弄到了服务器里的<em>解密</em>文件,rnrnrnrn 'on error resume nextrn strkey = request("strkey")rn strtemp = strkeyrn if IsEmpty(strkey) thenrn response.endrn end if rnrn if len(strkey) < 1 thenrn response.endrn end if rn strkey = StringDecrypt(strkey,"中国城镇基本医疗保险制度逐步扩大") rnrn Transactions=split(strkey,chr(1)) rn uName = Transactions(3) rn pwd = Base64encode(Transactions(4))rn cGamesName = Transactions(1)rn cAreaZone = Transactions(5)rn cServerName = Transactions(6)rn cNickName = Base64encode(Transactions(7))rn iLevel = chn10(Transactions(8))rn iDword1 = chn10(Transactions(9))rn iDword2 = chn10(Transactions(10))rn iDword3 = chn10(Transactions(11))rn iDword4 = chn10(Transactions(12))rn iDword5 = chn10(Transactions(13))rn iDword6 = chn10(Transactions(14))rn cString1 = Base64encode(Transactions(15))rn cString2 = Base64encode(Transactions(16))rn cString3 = Base64encode(Transactions(17))rn cString4 = Base64encode(Transactions(18))rn cString5 = Base64encode(Transactions(19))rn cString6 = Base64encode(Transactions(20))rnrn 哪位大哥能<em>帮忙</em>解释下原理或者 帮我还原下<em>代码</em>...我想学习下, 多讲点过程
ASP源码解密 破解ASP加密源码
ASP<em>解密</em> 破解ASP<em>加密</em>源码 ASP<em>解密</em> 破解ASP<em>加密</em>源码
ASP网站地址加密
我做了个<em>网站</em>是ASP的 我看到别人的<em>网站</em>假如 是 http:///www.ss.com/index.<em>asp</em>xrn<em>加密</em>后后面显示好多%BC%D3%C3%DBC%D3%C3%DBC%D3%C3%DBC%D3%C3%很长一串 不知道是怎么做的我记得是个什么属性之类的 忘记了
zwdecode解密ASP代码
传说中的zwdecode.exe,可以反<em>解密</em>使用Screnc.exe<em>加密</em>过的页面,印象中对html解码还不错,对<em>asp</em>文件解码一般。
asp代码解密工具
<em>asp</em><em>代码</em><em>解密</em>工具 个人感觉很好用 拿出来分享一下
如何解密asp代码
rnrn
asp代码解密
venshopcom="uhvsrqvh1zulwh#%?khdgA?wlwohA%!uhvsrqvh1zulwh#vlwhqdph!uhvsrqvh1zulwh#%?2wlwohA?2khdgA%!uhvsrqvh1zulwh#%?olqn#kuhi@Vnlq2%)yhqvkrsbvnlq)%2fvv1fvv#uho@VW\OHVKHHW#w|sh@whw2fvvA%!uhvsrqvh1zulwh#%?phwd#kwws0htxly@%%Frqwhqw0W|sh%%#frqwhqw@%%whw2kwpo>#fkduvhw@je5645%%A%!uhvsrqvh1zulwh#%?erg|#wrspdujlq@%%8%%#ohiwpdujlq@%%3%%#uljkwpdujlq@%%3%%#erwwrppdujlq@%%3%%A%!li#jxhvwrughu@3#dqg#Uhtxhvw1Frrnlhv+%yhqvkrs%,+%xvhubqdph%,@%%#wkhq!uhvsrqvh1zulwh#%?wdeoh#erughu@%%3%%#fhoosdgglqj@%%3%%#fhoovsdflqj@%%8%%#zlgwk@%%#ZLGWK=#443s%%A?2wgA%!uhvsrqvh1zulwh#%?wg#urzvsdq@%%5%%A?lqsxw#qdph@%%frpxuo%%#w|sh@%%klgghq%%#ydoxh@%%edvnhw1dvsB%)Uhtxhvw1VhuyhuYduldeohv+%TXHU\bVWULQJ%,)%%%A%!uhvsrqvh1zulwh#%?lqsxw#w|sh@lpdjh#vuf@%%Vnlq2%)yhqvkrsbvnlq)%2exwwrqborjlq1jli%%#qdph@%%orjlq%%A?2wgA%!uhvsrqvh1zulwh#%?wg#khljkw@%%78%%A?D#kuhi@%%uhj1dvs%%A?LPJ#vuf@%%Vnlq2%)yhqvkrsbvnlq)%2orjlquhj1jli%%#erughu@3A?2DA?2wgA?2wuA%!uhvsrqvh1zulwh#%?wuA?wg#doljq@%%uljkw%%#khljkw@%%78%%A%)sdvvbwhw)%?2wgA%!uhvsrqvh1zulwh#%?wg#khljkw@%%78%%A?lqsxw#vw|oh@%%IRQW0VL]H=#45s>#ZLGWK=#443s%%#w|sh@%%sdvvzrug%%#qdph@%%xvhubsdvv%%#fodvv@lqsxw#vlh@%%45%%A?2wgA%!uhvsrqvh1zulwh#%?wg#khljkw@%%78%%A?d#kuhi@%%uhsdvv1dvs%%A?LPJ#vuf@%%Vnlq2%)yhqvkrsbvnlq)%2uhsdvv1jli%%#erughu@3A?2dA?2wgA?2wuA%!uhvsrqvh1zulwh#%?wuA?wg#frovsdq@%%7%%#doljq@%%fhqwhu%%#khljkw@%%78%%A?2wgA?2wuA?2irupA?2wdeohA?2wgA?2wuA?2wdeohA%!uhvsrqvh1hqg!hqg#li!li#Uhtxhvw1Frrnlhv+%yhqvkrs%,+%xvhubqdph%,@%%#dqg#Uhtxhvw1Frrnlhv+%yhqvkrs%,+%jxhvw%,@%%#wkhq!xvhubqdph@uhtxhvw1vhuyhuyduldeohv+%uhprwhbdggu%,)krxu+qrz+,,)plqxwh+qrz+,,)vhfrqg+qrz+,,!xvhubqdph@uhsodfh+xvhubqdph/%0%/%%,!xvhubqdph@uhsodfh+xvhubqdph/%#%/%%,!xvhubqdph@uhsodfh+xvhubqdph/%=%/%%,!xvhubqdph@uhsodfh+xvhubqdph/%1%/%%,!Uhvsrqvh1Frrnlhv+%yhqvkrs%,+%jxhvw%,@xvhubqdph!hovhli#Uhtxhvw1Frrnlhv+%yhqvkrs%,+%xvhubqdph%,?A%%#wkhq!xvhubqdph@Uhtxhvw1Frrnlhv+%yhqvkrs%,+%xvhubqdph%,!hovhli#Uhtxhvw1Frrnlhv+%yhqvkrs%,+%jxhvw%,?A%%#wkhq!xvhubqdph@Uhtxhvw1Frrnlhv+%yhqvkrs%,+%jxhvw%,!hqg#li!kzblg@Uhtxhvw+%kzblg%,!Li#Qrw+lvQxphulf+kzblg,,#ru#kzblg@%%#ru#kzblg@3#Wkhq!uhvsrqvh1zulwh#%?vfulsw#odqjxdjh@mdydvfulswAdohuw+*Huuru1*,>klvwru|1jr+04,>?2vfulswA%!uhvsrqvh1Hqg!Hqg#Li!wdrblg@uhtxhvw+%wdrblg%,!nd@uhtxhvw+%nd%,!ne@uhtxhvw+%ne%,!li#uhtxhvw+%frxqw%,@%%#ru#Qrw+lvQxphulf+uhtxhvw+%frxqw%,,,#wkhq!frxqw@4!hovh!frxqw@Flqw+uhtxhvw+%frxqw%,,!hqg#li!vhw#uv@vhuyhu1fuhdwhremhfw+%dgrge1uhfrugvhw%,!vto@%vhohfw#-#iurp#yhqvkrsbkz#zkhuh#kzblg@%)kzblg)%%!uv1rshq#vto/frqq/4/4!li#wdrblg?A%%#wkhq!kzbqdph@uv+%kzbqdph%,)uv+%wdrbqdph%)wdrblg,!kzbsulfh5@uv+%wdrbsulfh%)wdrblg,!kzbmlihq@uv+%kzbmlihq%,!hovh!kzbqdph@uv+%kzbqdph%,!kzbsulfh5@uv+%kzbsulfh5%,!kzbmlihq@uv+%kzbmlihq%,!wdrblg@3!hqg#li!kzbnxfxq@uv+%kzbnxfxq%,!uv1forvh!vhw#uv@qrwklqj!li#kzbnxfxq@3#wkhq!Uhvsrqvh1Zulwh%?vfulsw#odqjxdjh@mdydvfulswAdohuw+*%)huuphj4)%*,>zlqgrz1orfdwlrq1kuhi@*%)Uhtxhvw1VhuyhuYduldeohv+%KwwsbUhihuhu%,)%*>?2vfulswA%!uhvsrqvh1Hqg!hovhli#frxqwAkzbnxfxq#wkhq!Uhvsrqvh1Zulwh%?vfulsw#odqjxdjh@mdydvfulswAdohuw+*%)huuphj5)%*,>zlqgrz1orfdwlrq1kuhi@*%)Uhtxhvw1VhuyhuYduldeohv+%KwwsbUhihuhu%,)%*>?2vfulswA%!uhvsrqvh1Hqg!hqg#li!li#nd?A%%#wkhq#vhud@%#dqg#nd@*%)nd)%*%!li#ne?A%%#wkhq#vhue@%#dqg#ne@*%)ne)%*%!vhw#uv@vhuyhu1FuhdwhRemhfw+%dgrge1uhfrugvhw%,!vto@%vhohfw#-#iurp#yhqvkrsbedvnhw#zkhuh#kzblg@%)kzblg)%#dqg#xvhubqdph@*%)xvhubqdph)%*#dqg#wdrblg@%)wdrblg)%#dqg#edvnhwbfkhfn@3#%)vhud)vhue)%#rughu#e|#edvnhwblg#ghvf%!uv1rshq#vto/frqq/4/6!li#uv1hri#wkhq!uv1dggqhz!uv+%kzblg%,@kzblg!uv+%xvhubqdph%,@xvhubqdph!uv+%edvnhwbfrxqw%,@frxqw!uv+%edvnhwbgdwh%,@qrz+,!uv+%kzbqdph%,@kzbqdph!uv+%kzbsulfh%,@kzbsulfh5!uv+%kzbmlihq%,@kzbmlihq!uv+%wdrblg%,@wdrblg!uv+%edvnhwbfkhfn%,@3!li#nd?A%%#wkhq#uv+%nd%,@nd!li#ne?A%%#wkhq#uv+%ne%,@ne!hovh!li#uv+%edvnhwbfrxqw%,.frxqwAkzbnxfxq#wkhq!Uhvsrqvh1Zulwh%?vfulsw#odqjxdjh@mdydvfulswAdohuw+*%)huuphj5)%*,>zlqgrz1orfdwlrq1kuhi@*%)Uhtxhvw1VhuyhuYduldeohv+%KwwsbUhihuhu%,)%*>?2vfulswA%!uhvsrqvh1Hqg!hovh!uv+%edvnhwbfrxqw%,@uv+%edvnhwbfrxqw%,.frxqw!hqg#li!hqg#li!uv1xsgdwh!uv1forvh!vhw#uv@qrwklqj!uhvsrqvh1uhgluhfw#%ex|1dvs%"rnrnrn有谁能帮我把这段<em>代码</em><em>解密</em>吗?<em>谢谢</em>了!
如何解密asp代码
怎么解密ASP代码
我下了一个程序,想来学习一下rn可是全是乱码。请问怎么<em>解密</em>呢
这种解密代码,怎么写出加密代码来。谢谢
function Unencode(venshop)rnvenshopbut=5rnfor i=1 to len(venshop)rnif mid(venshop,i,1)<>"+" thenrnven=asc(mid(venshop,i,1))-venshopbutrnif ven>126 thenrnven=ven-95rnelseif ven<32 thenrnven=ven+95rnend ifrnvena=vena&chr(ven)rnelsernvena=vena&chr(13)rnend ifrnnextrnUnencode=venarnend functionrn上面是<em>解密</em><em>代码</em>
如何加密Asp源代码
我使用ASPEdit<em>加密</em>后总是出错,提示@命令只能出现一次,如何比较好的<em>加密</em><em>asp</em>源<em>代码</em>?
如何加密ASP源代码
如题!
需要以下代码
找到一个pb写的扫雷游戏,纯pb<em>代码</em>,有谁<em>需要</em>的?rn请至www.smiling.com.cn中的“pb工作室”去下载
代码解密源码ASP代码解密源码ASP
<em>asp</em><em>代码</em><em>解密</em>工具,这里<em>需要</em>20个字符,我不知道说什么了,哈哈。
解密代码 谢谢
请告诉我这样的php内容怎样解,<em>谢谢</em>!!! 太多了 发不来 下面是一部分,具体在网盘。rnrn5a65 6e64 000b 3230 3034 3037 3232 3033rn0006 3635 3534 3000 0536 3238 3200 0632rn3133 3037 0078 f90a 9f32 0ced 5c79 985drn4595 af7e fd92 693a 1892 c928 f009 3162rn5006 27e9 7beb d6dd 403a b219 1985 1008rnc336 f27c e97e dde9 e175 bfce 7baf 13darn30d9 8c09 9281 1013 7714 4406 946f 10f9rnd842 8c08 614b 4222 0407 4633 1a41 4320rn228b e346 9841 e6d4 7aab eef6 3a33 fe29rn5ff7 17fa 9e53 75ab 4e9d 3af5 3b4b 5d50rnrn文件地址 http://pan.baidu.com/s/14uLAY
我有asp网站代码需要修改
<em>谢谢</em>路过,请<em>帮忙</em>找找人rn我现在有个<em>asp</em>的<em>网站</em><em>需要</em>修改几个小地方,很简单的,本人学过.net,对<em>asp</em>不想投入精力了,现在谁方便的话给我联系一下,<em>帮忙</em>给弄下,可以给报酬,QQ:821192351
一段代码,谁帮忙谢谢每句的功能
[b]Class mainClass = BpsJarClassLoader.getInstance("zte", "TCall").loadClass(rn "com.chinatelecom.sag.ecp.thirdpartycall_wsdl.IMSTHIRDPARTYCALLAtomic");[/b]rn [b]Method method = mainClass.getMethod("endCall",new Class[] Map.class );[/b]rn HashMap paraIn = new HashMap();rn paraIn.put("spId", "ematest2");rn paraIn.put("requestID", "1002");rn paraIn.put("serviceKey", "123456");rn Date dt = new Date();rn SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss");rn String timeStamp = sdf2.format(dt);rn paraIn.put("timeStamp", timeStamp);rn [b]method.invoke(mainClass.newInstance(), new Object[] paraIn );[/b]rn加粗的最好能全写出来,<em>谢谢</em>啦
谁给个vb2005加密xml和解密xml的代码呗!
谁给个vb2005<em>加密</em>xml和<em>解密</em>xml的<em>代码</em>呗!
用户的密码加密解密代码
密码<em>加密</em>和密码<em>解密</em>!! 把用户和密码绑在一起<em>加密</em>,<em>解密</em>也<em>需要</em>用户和<em>加密</em>的密码。
AES加密_解密_verilog代码
AES加<em>解密</em>算法,各个模块有详细的<em>代码</em>,使Verilog语言编写,在FPGA上已经得到验证
这个代码加密了,怎么解密???
rnrnrnrn请问这个<em>代码</em>是有什么来<em>加密</em>的,要有什么来<em>解密</em>|??能个给个例子的是最好的了.rn
c# 加密解密相关代码
 数据的<em>加密</em>与<em>解密</em>  文件的<em>加密</em>与<em>解密</em> 第 章 <em>加密</em>与<em>解密</em>技术 第19章 <em>加密</em>与<em>解密</em>技术 829 19.1 数据的<em>加密</em>与<em>解密</em> 实例571 异或算法对数字进行<em>加密</em>与<em>解密</em> 光盘位置:光盘\MR\19\571 中级 趣味指数: 实 例说明 在实现本实例之前先来简要了解一下<em>加密</em>的概念,<em>加密</em>是指通过 某种特殊的方法,更改已有信息的内容,使得未授权的用户即使得到 了<em>加密</em>信息,如果没有正确<em>解密</em>的方法,也无法得到信息的内容。谈 到<em>加密</em>的话题,一些读者一定非常感兴趣,而且会联想到复杂的<em>加密</em> 算法,本实例主要使用异或“^”运算符简单地实现了对数字<em>加密</em>的 功能。实例运行效果如图19.1 所示。 关 键技术 本实例实现时主要使用了“异或”运算符对数字进行“异或”运 算,以达到简单<em>加密</em>数字的目的,下面对其进行详细讲解。 “异或”运算符“^”用于比较两个二进制数的相应位。在执行按位“异或”运算时,如果两个二进制数的 相应位都为1 或两个二进制数的相应位都为0,则返回0;如果两个二进制数的相应位其中一个为1 一个为0, 则返回1。 现在来了解一下使用“异或”<em>加密</em>或<em>解密</em>的执行过程,数值23 转换为二进制为10111,<em>加密</em>数字的数值15 转换为二进制为1111。对比两个二进制的值,从右向左按位对比,如果两个二进制数的相应位都为1 或两个二 进制数的相应位都为0,则返回0;如果两个二进制数的相应位中一个为1 一个为0,则返回1,最后得到的结 果为二进制值11000,该值转换为十进制为24,所以得到的<em>加密</em>结果为24。而<em>解密</em>过程也很简单,只是将<em>加密</em> 结果24与<em>加密</em>数字15 进行“异或”运算,将24 转换为二进制值11000,将15 转换为二进制值1111,进行“异 或”运算后,得到结果为23,这样又还原了<em>加密</em>的数据。  说明:本实例只是简单地使用了“异或”运算符计算两个整型数值以达到<em>加密</em>的目的,所以本实例只可以 对整型数值进行<em>加密</em>运算,并不适合其他数据的<em>加密</em>。 设 计过程 (1)打开Visual Studio 2008 开发环境,新建一个Windows窗体应用程序,并将其命名为Encrypt。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加两个GroupBox 容器控件,其中, 在第一个GroupBox 中放入3 个TextBox 控件和一个Button 按钮,分别用于输入数字、输入<em>加密</em>数字、显示加 密后的数字和计算<em>加密</em>信息;在第二个GroupBox 中放入一个TextBox 控件和一个Button 按钮,分别用于显示 <em>解密</em>后的信息和计算<em>解密</em>信息。 (3)程序主要<em>代码</em>如下: private void btn_Encrypt_Click(object sender, EventArgs e) { int P_int_Num, P_int_Key; //定义两个值类型变量 if (int.TryParse(txt_Num.Text, out P_int_Num) //判断输入是否是数值 && int.TryParse(txt_Key.Text, out P_int_Key)) { txt_Encrypt.Text = (P_int_Num ^ P_int_Key).ToString(); //<em>加密</em>数值 } else 图19.1 异或算法对数字进行<em>加密</em>与<em>解密</em> C#开发实战1200 例(第II卷) 830 { MessageBox.Show("请输入数值", "出现错误!"); //提示输入信息不正确 } } private void btn_Revert_Click(object sender, EventArgs e) { int P_int_Key, P_int_Encrypt; //定义两个值类型变量 if (int.TryParse(txt_Encrypt.Text, out P_int_Key) //判断输入是否是数值 && int.TryParse(txt_Key.Text, out P_int_Encrypt)) { txt_Revert.Text = (P_int_Encrypt ^ P_int_Key).ToString(); //<em>解密</em>数值 } else { MessageBox.Show("请输入数值", "出现错误!"); //提示输入信息不正确 } } 秘 笈心法 心法领悟571:简述“异或”运算符。 本实例使用了“异或”运算符,但是在使用“异或”运算符之前,有必要了解“异或”运算符所做的“异 或”运算的机制,“异或”运算符“^”用于比较两个二进制数的相应位。在执行按位“异或”运算时,如果两 个二进制数的相应位都为1 或两个二进制数的相应位都为0,则返回0;如果两个二进制数的相应位中一个为1 一个为0,则返回1。 实例572 使用MD5算法<em>加密</em>数据 光盘位置:光盘\MR\19\572 中级 趣味指数: 实 例说明 MD5(Message-Digest Algorithm 5)是一种被广泛使用的“消息-摘要 算法”。“消息-摘要算法”实际上就是一个单项散列函数,数据块通过单 向散列函数得到一个固定长度的散列值,数据块的签名就是计算数据块的散 列值,MD5 算法的散列值为128 位。本实例演示如何使用MD5 算法对用户 输入的密码进行<em>加密</em>,实例运行效果如图19.2 所示。 关 键技术 本实例在实现时主要用到了MD5类的ComputeHash 方法,下面对其进行详细讲解。 MD5 类表示MD5 哈希算法的所有实现均从中继承的抽象类,该类位于System.Security.Cryptography 命名 空间下,其ComputeHash 方法有3种重载形式,分别介绍如下。  计算指定字节数组的哈希值,语法格式如下: public byte[] ComputeHash(byte[] buffer) 参数说明  buffer:要计算其哈希<em>代码</em>的输入。  返回值:计算所得的哈希<em>代码</em>。  计算指定Stream 对象的哈希值,语法格式如下: public byte[] ComputeHash(Stream inputStream) 参数说明  inputStream:要计算其哈希<em>代码</em>的输入。  返回值:计算所得的哈希<em>代码</em>。 图19.2 使用MD5 算法<em>加密</em>数据 第19章 <em>加密</em>与<em>解密</em>技术 831  计算指定字节数组的指定区域的哈希值,语法格式如下: public byte[] ComputeHash(byte[] buffer,int offset,int count) ComputeHash 方法中的参数及说明如表19.1 所示。 表19.1 ComputeHash方法中的参数及说明 参 数 说 明 buffer 要计算其哈希<em>代码</em>的输入 offset 字节数组中的偏移量,从该位置开始使用数据 count 数组中用作数据的字节数 返回值 计算所得的哈希<em>代码</em>  说明:本实例用到了ComputeHash 方法的第一种重载形式。 设 计过程 (1)打开Visual Studio 2008 开发环境,新建一个Windows窗体应用程序,并将其命名为MD5Arithmetic。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加两个TextBox 控件,分别用来输入 要<em>加密</em>的数据和显示<em>加密</em>后的字符串;添加一个Button 控件,用来使用MD5算法对输入的数据进行<em>加密</em>。 (3)程序主要<em>代码</em>如下: public string Encrypt(string strPwd) { MD5 md5 = new MD5CryptoServiceProvider(); //创建MD5 对象 byte[] data = System.Text.Encoding.Default.GetBytes(strPwd); //将字符编码为一个字节序列 byte[] md5data = md5.ComputeHash(data); //计算data字节数组的哈希值 md5.Clear(); //清空MD5 对象 string str = ""; //定义一个变量,用来记录<em>加密</em>后的密码 for (int i = 0; i < md5data.Length - 1; i++) //遍历字节数组 { str += md5data[i].ToString("x").PadLeft(2, '0'); //对遍历到的字节进行<em>加密</em> } return str; //返回得到的<em>加密</em>字符串 } private void button1_Click(object sender, EventArgs e) { string P_str_Code = textBox1.Text; //记录要<em>加密</em>的密码 textBox2.Text = Encrypt(P_str_Code); //显示<em>加密</em>后的字符串 } 秘 笈心法 心法领悟572:如何判断是否为数字? 开发程序时,经常<em>需要</em>判断输入的字符串是否为数字,如判断输入的电话号码、货币金额和邮编等。在程 序中判断是否为数字的方法有很多种,可以使用正则表达式、int.Parse 方法和double.Parse 方法等。下面的<em>代码</em> 通过double.Parse 方法判断textBox1 文本框中的输入是否为数字。 double.Parse(textBox1.Text); 实例573 使用ROT13算法<em>加密</em><em>解密</em>数据 光盘位置:光盘\MR\19\573 中级 趣味指数: 实 例说明 文件<em>加密</em>可以避免造成重要信息的泄漏,复杂的<em>加密</em>算法可以将信息<em>加密</em>得非常繁杂,但是对于一般的应 用,没有必要作类似于PGP、RSA 或DES 等复杂的<em>加密</em>算法。本实例介绍如何使用ROT13 算法<em>加密</em>和<em>解密</em>数 C#开发实战1200 例(第II卷) 832 据。实例运行效果如图19.3 所示。 图19.3 使用ROT13算法<em>加密</em><em>解密</em>数据 关 键技术 本实例实现时,主要是用Convert 类的ToChar 方法来获取单个字符的Unicode 编码,然后将字母的前13 个和后13 个对调,从而实现<em>加密</em>的功能。下面对Convert类的ToChar 方法进行详细讲解。 ToChar 方法返回指定的Unicode字符值,并且不执行任何实际的转换,其语法格式如下: public static char ToChar (char value) 参数说明 value:一个Unicode 字符。 设 计过程 (1)打开Visual Studio 2008 开发环境,新建一个Windows窗体应用程序,并将其命名为ROT13Encrypt。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加两个TextBox 控件,分别用来显示 原始数据和<em>解密</em>后的数据;添加两个Button 控件,分别用来实现利用ROT13算法<em>加密</em>和<em>解密</em>数据的功能。 (3)程序主要<em>代码</em>如下: public string ROT13Encode(string InputText) { char tem_Character; //存储临时字符 int UnicodeChar; //存储临时字符的字节值 string EncodedText = ""; //存储<em>加密</em>或<em>解密</em>后的字符串 for (int i = 0; i < InputText.Length; i++) //遍历字符串中的所有字符,只能<em>加密</em>字符串,无法<em>加密</em>汉字 { tem_Character = System.Convert.ToChar(InputText.Substring(i, 1)); //获取字符串中指定的字符 UnicodeChar = (int)tem_Character; //获取当前字符的Unicode 编码 if (UnicodeChar >= 97 && UnicodeChar = 110 && UnicodeChar = 65 && UnicodeChar = 78 && UnicodeChar < str.Length; i++) //遍历字符串中的每一个字符串 { string ins = c[i].ToString(); //记录遍历到的字符 string outs = ""; //定义一个变量,用来记录<em>加密</em>后的字符串 bool isChar = "0123456789abcdefghijklmnopqrstuvwxyz".Contains(ins.ToLower()); //判断指定的字符串中是否包含遍历到的字符 bool isToUpperChar = isChar && (ins.ToUpper() == ins); //判断遍历到的字符是否是大写 ins = ins.ToLower(); //将遍历到的字符转换为小写 if (isChar) //判断指定的字符串中是否包含遍历到的字符 { int offset = (AscII(ins) + 5 - AscII("a")) % (AscII("z") - AscII("a") + 1); //获取字符的ASCII 码 outs = Convert.ToChar(offset + AscII("a")).ToString(); //转换为字符并记录 if (isToUpperChar) //判断是否大写 { outs = outs.ToUpper(); //全部转换为大写 } } else { outs = ins; //记录遍历的字符 } strCaesar += outs; //添加到<em>加密</em>字符串中 } return strCaesar; //返回<em>加密</em>后的字符串 } 秘 笈心法 心法领悟574:如何将新字符串添加到已有字符串中? 将新字符串添加到已有字符串中时,可以先声明一个StringBuilder类对象,以指定已有字符串的长度可变, 然后利用该对象的Append方法在字符串中添加指定字符串。将新字符串添加到已有字符串的<em>代码</em>如下: StringBuilder strbuilder = new StringBuilder(textBox1.Text.Trim()); strbuilder.Append(textBox2.Text.Trim()); textBox3.Text = strbuilder.ToString(); 实例575 对数据报进行<em>加密</em>保障通信安全 光盘位置:光盘\MR\19\575 高级 趣味指数: 实 例说明 网络传输数据时,有时候传输信息容易被不法分子截获而 用作其他用途。这样,如果传输的数据中包含有重要秘密,将 会造成非常严重的后果。为了防止这种情况的发生,可以对网 络中传输的数据进行<em>加密</em>,用户接收到数据后再进行<em>解密</em>查看, 这样可以更好地保障网络通信安全。运行本实例,首先设置端 口号,然后在窗体左下方的文本框中输入聊天信息,单击“发 送”按钮,向局域网中发送聊天信息,同时在右侧的“数据传 输信息”栏中显示数据报的发送、接收及丢失情况。实例运行 效果如图19.5 所示。 关 键技术 本实例获取数据报信息时主要用到IPGlobalProperties和UdpStatistics类,而在对数据报<em>加密</em>时用到DESCrypto 图19.5 对数据报进行<em>加密</em>保障通信安全 第19章 <em>加密</em>与<em>解密</em>技术 835 ServiceProvider 和CryptoStream 类,其中DESCryptoServiceProvider 继承于DES 类。下面对本实例中用到的关 键技术进行详细讲解。 (1)IPGlobalProperties 类 IPGlobalProperties 类提供有关本地计算机的网络连接的信息,本实例中用到它的GetIPGlobalProperties 和 GetUdpIPv4Statistics 方法,下面分别进行介绍。 GetIPGlobalProperties 为静态方法,主要用来获取一个对象,该对象提供有关本地计算机的网络连接和通信 统计数据的信息,其语法格式如下: public static IPGlobalProperties GetIPGlobalProperties() 参数说明 返回值:IPGlobalProperties 对象,该对象包含有关本地计算机的信息。 GetUdpIPv4Statistics 方法主要用来提供本地计算机的用户数据报协议/Internet 协议版本4 (UDP/IPv4)统 计数据,其语法格式如下: public abstract UdpStatistics GetUdpIPv4Statistics() 参数说明 返回值:UdpStatistics 对象,提供本地计算机的UDP/IPv4通信统计数据。 例如,本实例中创建IPGlobalProperties 对象,及调用其GetUdpIPv4Statistics 方法创建UdpStatistics 对象的 <em>代码</em>如下: IPGlobalProperties NetInfo = IPGlobalProperties.GetIPGlobalProperties(); UdpStatistics myUdpStat = null; myUdpStat = NetInfo.GetUdpIPv4Statistics(); (2)UdpStatistics类 UdpStatistics 类提供用户数据报协议(UDP)统计数据,本实例中主要用到其DatagramsSent 属性、 DatagramsReceived属性和IncomingDatagramsDiscarded 属性,其中,DatagramsSent 属性用来获取已发送的用户 数据报协议(UDP)数据报的数量,DatagramsReceived 属性用来获取已接收的用户数据报协议(UDP)数据报 的数量,IncomingDatagramsDiscarded 属性用来获取已收到但因端口错误而丢弃的用户数据报协议(UDP)数据 报的数量。 例如,本实例中初始化已发送、已接收和丢失数据报的实现<em>代码</em>如下: SendNum1 = Int32.Parse(myUdpStat.DatagramsSent.ToString()); //记录发送的数据报 ReceiveNum1 = Int32.Parse(myUdpStat.DatagramsReceived.ToString()); //记录接收的数据报 DisNum1 = Int32.Parse(myUdpStat.IncomingDatagramsDiscarded.ToString()); //记录丢失的数据报  说明:IPGlobalProperties 类和UdpStatistics 类位于System.Net.NetworkInformation 命名空间下。 (3)DES 类 DES 类表示所有DES 实现都必须从中派生的数据<em>加密</em>标准(DES)算法的基类,其CreateEncryptor 方法和 CreateDecryptor 方法分别用来<em>加密</em>和<em>解密</em>。 CreateEncryptor 方法使用指定的Key属性和初始化向量(IV)创建对称<em>加密</em>器对象,其语法格式如下: public abstract ICryptoTransform CreateEncryptor(byte[] rgbKey,byte[] rgbIV) 参数说明  rgbKey:用于对称算法的密钥。  rgbIV:用于对称算法的初始化向量。  返回值:对称<em>加密</em>器对象。 CreateDecryptor 方法使用指定的Key属性和初始化向量(IV)创建对称<em>解密</em>器对象,其语法格式如下: public abstract ICryptoTransform CreateDecryptor(byte[] rgbKey,byte[] rgbIV) 参数说明  rgbKey:用于对称算法的密钥。  rgbIV:用于对称算法的初始化向量。  返回值:对称<em>解密</em>器对象。 C#开发实战1200 例(第II卷) 836 (4)CryptoStream 类 CryptoStream 类定义将数据流链接到<em>加密</em>转换的流,其构造函数的语法格式如下: public CryptoStream(Stream stream,ICryptoTransform transform,CryptoStreamMode mode) 参数说明  stream:对其执行<em>加密</em>转换的流。  transform:要对流执行的<em>加密</em>转换。  mode:CryptoStreamMode 枚举值之一,CryptoStreamMode 枚举值及说明如表19.2 所示。 表19.2 CryptoStreamMode枚举值及说明 枚 举 值 说 明 Read 对<em>加密</em>流的读访问 Write 对<em>加密</em>流的写访问 另外,在向<em>加密</em>或<em>解密</em>流中写入数据时用到CryptoStream 类的Write 方法,该方法将一个字节序列写入当 前CryptoStream,并将流中的当前位置提升写入的字节数,其语法格式如下: public override void Write(byte[] buffer,int offset,int count) 参数说明  buffer:字节数组,此方法将count 个字节从buffer 复制到当前流。  offset:buffer 中的字节偏移量,从此偏移量开始将字节复制到当前流。  count:要写入当前流的字节数。  说明:DES 类和CryptoStream 类位于System.Security.Cryptography 命名空间下。 设 计过程 (1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,并将其命名为EncryptDataReport。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加两个RichTextBox 控件,分别用来 输入聊天信息和显示聊天信息;添加4 个TextBox 控件,分别用来输入端口号和显示已发送数据报、已接收数 据报、丢失数据报;添加4 个Button 控件,分别用来执行设置端口号、发送聊天信息、清空聊天信息和关闭应 用程序操作。 (3)程序主要<em>代码</em>如下。 Frm_Main 窗体的后台<em>代码</em>中,首先创建程序所<em>需要</em>的.NET 对象及公共变量,<em>代码</em>如下: #region 定义全局对象及变量 private IPEndPoint Server; //服务器端 private IPEndPoint Client; //客户端 private Socket mySocket; //套接字 private EndPoint ClientIP; //IP地址 byte[] buffer, data; //接收缓存 bool blFlag = true; //标识是否第一次发送信息 bool ISPort = false; //判断端口打开 int SendNum1, ReceiveNum1, DisNum1; //记录窗体加载时的已发送\已接收\丢失的数据报 int SendNum2, ReceiveNum2, DisNum2; //记录当前已发送\已接收\丢失的数据报 int SendNum3, ReceiveNum3, DisNum3; //缓存已发送\已接收\丢失的数据报 int port; //端口号 #endregion Frm_Main 窗体加载时,初始化已发送、已接收和丢失的数据报,并使用全局变量记录,实现<em>代码</em>如下: //初始化已发送、已接收和丢失的数据报 private void Form1_Load(object sender, EventArgs e) { if (blFlag == true) { IPGlobalProperties NetInfo = IPGlobalProperties.GetIPGlobalProperties(); //创建一个IPGlobalProperties 对象 UdpStatistics myUdpStat = null; //声明UdpStatistics 对象 myUdpStat = NetInfo.GetUdpIPv4Statistics(); //创建UdpStatistics 对象 第19章 <em>加密</em>与<em>解密</em>技术 837 SendNum1 = Int32.Parse(myUdpStat.DatagramsSent.ToString()); //记录发送的数据报 ReceiveNum1 = Int32.Parse(myUdpStat.DatagramsReceived.ToString()); //记录接收的数据报 DisNum1 = Int32.Parse(myUdpStat.IncomingDatagramsDiscarded.ToString()); //记录丢失的数据报 } } 单击“设置”按钮,使用指定的端口号连接服务器端与客户端,并开始接收消息。“设置”按钮的Click 事件的<em>代码</em>如下: private void button4_Click(object sender, EventArgs e) //设置端口号 { try { port = Convert.ToInt32(textBox4.Text); //记录端口号 CheckForIllegalCrossThreadCalls = false; //指定线程中可以调用窗体的控件对象 buffer = new byte[1024]; data = new byte[1024]; Server = new IPEndPoint(IPAddress.Any, port); //创建服务器端 Client = new IPEndPoint(IPAddress.Broadcast, port); //创建客户端 ClientIP = (EndPoint)Server; //获取服务器端IP 地址 //创建Socket 对象 mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //设置Socket 网络操作 mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1); mySocket.Bind(Server); //绑定服务器端 //开始接收消息 mySocket.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None, ref ClientIP, new AsyncCallback(StartLister), null); ISPort = true; //打开指定端口号 } catch { } } 单击“发送”按钮,首先判断是否有打开的端口,如果没有,弹出提示信息,否则根据发送和接收的消息 计算已发送、已接收和丢失的数据报,并显示在相应的文本框中,然后使用DES对要发送的消息进行<em>加密</em>发送。 “发送”按钮的Click事件的<em>代码</em>如下: //发送信息 private void button2_Click(object sender, EventArgs e) { if (ISPort == true) //判断是否有打开的端口号 { IPGlobalProperties NetInfo = IPGlobalProperties.GetIPGlobalProperties(); UdpStatistics myUdpStat = null; myUdpStat = NetInfo.GetUdpIPv4Statistics(); try { if (blFlag == false) //非第一次发送 { SendNum2 = Int32.Parse(myUdpStat.DatagramsSent.ToString()); ReceiveNum2 = Int32.Parse(myUdpStat.DatagramsReceived.ToString()); DisNum2 = Int32.Parse(myUdpStat.IncomingDatagramsDiscarded.ToString()); textBox1.Text = Convert.ToString(SendNum2 - SendNum3); textBox2.Text = Convert.ToString(ReceiveNum2 - ReceiveNum3); textBox3.Text = Convert.ToString(DisNum2 - DisNum3); } SendNum2 = Int32.Parse(myUdpStat.DatagramsSent.ToString()); ReceiveNum2 = Int32.Parse(myUdpStat.DatagramsReceived.ToString()); DisNum2 = Int32.Parse(myUdpStat.IncomingDatagramsDiscarded.ToString()); SendNum3 = SendNum2; //记录本次的发送数据报 ReceiveNum3 = ReceiveNum2; //记录本次的接收数据报 DisNum3 = DisNum2; //记录本次的丢失数据报 if (blFlag == true) //第一次发送 { textBox1.Text = Convert.ToString(SendNum2 - SendNum1); textBox2.Text = Convert.ToString(ReceiveNum2 - ReceiveNum1); textBox3.Text = Convert.ToString(DisNum2 - DisNum1); blFlag = false; C#开发实战1200 例(第II卷) 838 } } catch (Exception ex) { MessageBox.Show(ex.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } string str = EncryptDES(rtbSend.Text, "mrsoftxk"); //<em>加密</em>要发送的信息 data = Encoding.Unicode.GetBytes(str); mySocket.SendTo(data, data.Length, SocketFlags.None, Client); //发送消息 rtbSend.Text = ""; } else { MessageBox.Show("请首先打开端口!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); button4.Focus(); } } 上面的<em>代码</em>中用到了EncryptDES 方法,该方法为自定义的、返回值类型为string 的方法,主要用来使用 DES <em>加密</em>数据报,它有两个string 类型的参数,分别用来表示待<em>加密</em>的字符串和<em>加密</em>密钥,返回值为<em>加密</em>后的 字符串。EncryptDES 方法的实现<em>代码</em>如下: #region DES <em>加密</em>字符串 /// ///DES <em>加密</em>字符串 /// ///待<em>加密</em>的字符串 ///<em>加密</em>密钥,要求为8 位 ///<em>加密</em>成功返回<em>加密</em>后的字符串,失败返回源字符串 public string EncryptDES(string str, string key) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8)); //将<em>加密</em>密钥转换为字节数组 byte[] rgbIV = Keys; //记录原始密钥数组 byte[] inputByteArray = Encoding.UTF8.GetBytes(str); //将<em>加密</em>字符串转换为字节数组 DESCryptoServiceProvider myDES = new DESCryptoServiceProvider(); //创建<em>加密</em>对象 MemoryStream MStream = new MemoryStream(); //创建内存数据流 //创建<em>加密</em>流对象 CryptoStream CStream = new CryptoStream(MStream, myDES.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); CStream.Write(inputByteArray, 0, inputByteArray.Length); //向<em>加密</em>流中写入数据 CStream.FlushFinalBlock(); //释放<em>加密</em>流对象 return Convert.ToBase64String(MStream.ToArray()); //返回内存流中的数据 } catch { return str; } } #endregion 秘 笈心法 心法领悟575:如何根据标点符号分行? 根据标点符号分行时,首先要使用string 类的Split 方法分割字符串,然后再通过“\n”回车换行符将分割 的字符串换行显示。根据标点符号分行的<em>代码</em>如下: string oldstr = textBox1.Text.Trim(); string[] newstr = oldstr.Split('。'); for (int i = 0; i < newstr.Length; i++) { if (richTextBox1.Text == "") richTextBox1.Text = newstr[i].ToString(); else richTextBox1.Text += "\n" + newstr[i].ToString(); } 第19章 <em>加密</em>与<em>解密</em>技术 839 实例576 使用one-time pad算法<em>加密</em>数据 光盘位置:光盘\MR\19\576 高级 趣味指数: 实 例说明 在密码学里,有一种理想的<em>加密</em>方案,叫做一次一密乱码本,即 one-time pad 算法,该算法是最安全的<em>加密</em>算法,双方一旦安全交换 了密钥,之后交换信息的过程就可以保证绝对安全。本实例使用C# 实现了one-time pad <em>加密</em>算法,实例运行效果如图19.6 所示。  注意:程序中使用one-time pad 算法时,一定要保证密钥和密文 的长度是一样的。 关 键技术 本实例在实现one-time pad <em>加密</em>算法时,主要用到了Encoding 类的GetBytes 方法和GetString 方法,下面 分别对它们进行详细介绍。 (1)Encoding 类的GetBytes方法 Encoding 类表示字符编码,其GetBytes方法主要用来将一组字符编码为一个字节序列,该方法为可重载方 法,本实例中用到的它的重载形式如下: public virtual byte[] GetBytes(string s) 参数说明  s:字符串。  返回值:一个字节数组,包含对指定的字符集进行编码的结果。  说明:Encoding 类位于System.Text 命名空间下。 (2)Encoding 类的GetString方法 Encoding 类的GetString方法主要用来将一个字节序列解码为一个字符串,该方法为可重载方法,本实例中 用到的它的重载形式如下: public virtual string GetString(byte[] bytes) 参数说明  bytes:包含要解码的字节序列的字节数组。  返回值:包含指定字节序列解码结果的字符串。 设 计过程 (1) 打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,并将其命名为OneTimePadArithmetic。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加4 个TextBox 控件,分别用来输入 要<em>加密</em>的数据和密钥,以及显示<em>加密</em>后的数据和<em>解密</em>后的数据;添加两个Button控件,分别用来实现使用one-time pad 算法<em>加密</em>数据和<em>解密</em>数据的功能。 (3)程序主要<em>代码</em>如下。 在Frm_Main 窗体中输入要<em>加密</em>的数据和密钥后,单击“<em>加密</em>”按钮,使用one-time pad 算法对输入的数据 进行<em>加密</em>,实现<em>代码</em>如下: private void button1_Click(object sender, EventArgs e) { textBox2.Text = ""; //清空文本框 Encoding encoding = Encoding.Default; //获取字符编码 byte[] btData = encoding.GetBytes(textBox1.Text); //将要<em>加密</em>的数据转换为字节数组 byte[] btKey = encoding.GetBytes(textBox4.Text); //将密钥转换为字节数组 图19.6 使用one-time pad 算法<em>加密</em>数据 C#开发实战1200 例(第II卷) 840 if (btData.Length == btKey.Length) //判断长度是否相等 { byte[] btEncrypt = Encrypt(btData, btKey); //<em>加密</em>数据 for (int i = 0; i < btEncrypt.Length; i++) //遍历<em>加密</em>后的字节数组 { textBox2.Text += btEncrypt[i]; //显示在文本框中 } } } 上面的<em>代码</em>中用到了Encrypt 方法,该方法为自定义的、返回值类型为byte[]的方法,主要用来对指定的数 据使用one-time pad 算法进行<em>加密</em>。Encrypt方法的实现<em>代码</em>如下: public static byte[] Encrypt(byte[] btData, byte[] btKey) { if (btKey.Length != btData.Length) //判断长度是否相等 { MessageBox.Show("请确保要<em>加密</em>数据的长度与密钥的长度一致!"); } byte[] btResult = new byte[btData.Length]; //声明一个字节数组,用来存储<em>加密</em>数据 for (int i = 0; i < btResult.Length; ++i) //遍历字节数组 { btResult[i] = (byte)(btKey[i] ^ btData[i]); //为字节数组赋值 } return btResult; //返回得到的<em>加密</em>数据 } 单击“<em>解密</em>”按钮,调用Encrypt 方法对<em>加密</em>过的数据进行逆向<em>加密</em>,并返回一个byte[]数组,然后使用 Encoding 类的GetString方法从该数组中获取<em>解密</em>字符串。“<em>解密</em>”按钮的Click事件的<em>代码</em>如下: private void button2_Click(object sender, EventArgs e) { Encoding encoding = Encoding.Default; //获取字符编码 byte[] btData = encoding.GetBytes(textBox1.Text); //将要<em>加密</em>的数据转换为字节数组 byte[] btKey = encoding.GetBytes(textBox4.Text); //将密钥转换为字节数组 if (btData.Length == btKey.Length) //判断长度是否相等 { byte[] btDecrypt = Encrypt(Encrypt(btData, btKey), btKey); //<em>解密</em>数据 textBox3.Text = encoding.GetString(btDecrypt); //将<em>解密</em>后的字节数组转换为字符串并显示 } } 秘 笈心法 心法领悟576:如何在字符串中添加多个空格? 开发程序时,有时会根据<em>需要</em>在字符串中添加一些空格,这时可以使用string 类的Insert方法,该方法可以 在字符串中的指定位置插入一个新的字符串(包括空格)。在字符串中添加空格的<em>代码</em>如下: textBox3.Text = textBox1.Text.Insert(Convert.ToInt32(textBox2.Text.Trim()), " "); 实例577 使用伪随机数<em>加密</em>技术<em>加密</em>用户登录密码 光盘位置:光盘\MR\19\577 高级 趣味指数: 实 例说明 为了保障用户登录密码的安全,本实例使用伪随机数技术对用 户的登录密码进行<em>加密</em>,运行本实例,当用户在“登录密码”文本 框中输入登录密码时,程序会自动将使用过伪随机数<em>加密</em>技术<em>加密</em> 过的登录密码显示在下面的“<em>加密</em>密码”文本框中,单击“登录” 按钮,程序对“<em>加密</em>密码”文本框中的<em>加密</em>数据进行<em>解密</em>,然后再 与用户输入的登录密码相比较,如果相同,则登录成功;否则,登 录失败。实例运行效果如图19.7 所示。 图19.7 使用伪随机数<em>加密</em>技术 <em>加密</em>用户登录密码 第19章 <em>加密</em>与<em>解密</em>技术 841 关 键技术 本实例对用户登录密码<em>加密</em>时用到伪随机数<em>加密</em>技术,伪随机数<em>加密</em>技术实质上就是通过伪随机数序列使 登录密码字符串的字节值发生变化而产生密文,由于相同的初值能得到相同的随机数序列,因此,可以采用同 样的伪随机数序列来对密文进行<em>解密</em>。产生伪随机数时主要用到Random 类,该类表示伪随机数生成器,它是 一种能够产生满足某些随机性统计要求的数字序列的设备,其Next方法用来返回随机数,语法格式如下: public virtual int Next(int maxValue) 参数说明  maxValue:要生成的随机数的上界(随机数不能取该上界值),maxValue 必须大于等于零。  返回值:大于等于零且小于maxValue 的32 位带符号整数,即返回值的范围通常包括零但不包括 maxValue;不过,如果maxValue 等于零,则返回maxValue。 设 计过程 (1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,并将其命名为PRanDataEncrypt。 (2)更改默认窗体Form1 的Name属性为Frm_Main,在该窗体中添加3 个TextBox 控件,分别用来输入 登录用户、登录密码和显示<em>加密</em>密码;添加两个Button 控件,分别用来执行用户登录和清空文本框操作。 (3)程序主要<em>代码</em>如下。 Frm_Main 窗体的后台<em>代码</em>中,首先定义<em>加密</em>用户密码所用的伪随机数,<em>代码</em>如下: //定义<em>加密</em>用户密码所用的伪随机数 private string randStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; 当在“登录密码”文本框中输入登录密码时,实时将使用伪随机数<em>加密</em>过的登录密码显示在“<em>加密</em>密码” 文本框中,实现<em>代码</em>如下: private void textBox2_TextChanged(object sender, EventArgs e) { textBox3.Text = EncryptPwd(textBox2.Text); //显示<em>加密</em>后的用户登录密码 } 上面的<em>代码</em>中用到EncryptPwd 方法,该方法为自定义的、返回值类型为string 的方法,主要用来使用伪随 机数技术<em>加密</em>用户登录密码,它有一个参数,用来表示用户登录密码。EncryptPwd 方法的实现<em>代码</em>如下: /// /// 使用伪随机数<em>加密</em>用户登录密码 /// /// 用户登录密码 /// <em>加密</em>后的用户登录密码 private string EncryptPwd(string str) { byte[] btData = Encoding.Default.GetBytes(str); //将登录密码转换为字节数组 int j, k, m; int len = randStr.Length; //记录伪随机数长度 StringBuilder sb = new StringBuilder(); //创建StringBuilder对象 Random rand = new Random(); //创建Random 对象 for (int i = 0; i < btData.Length; i++) { j = (byte)rand.Next(6); //产生伪随机数 btData[i] = (byte)((int)btData[i] ^ j); //使用伪随机数对密码字节数组进行移位 k = (int)btData[i] % len; m = (int)btData[i] / len; m = m * 8 + j; sb.Append(randStr.Substring(k, 1) + randStr.Substring(m, 1)); //组合<em>加密</em>字符串 } return sb.ToString(); //返回生成的<em>加密</em>字符串 } 单击“登录”按钮,判断“<em>加密</em>密码”文本框是否为空。如果不为空,调用DecryptPwd 方法<em>解密</em>“<em>加密</em> 密码”文本框中的字符串;然后使用<em>解密</em>后的字符串与“登录密码”文本框中的字符串相比较,如果相同,则 用户登录成功;否则,弹出提示信息。“登录”按钮的Click事件<em>代码</em>如下: C#开发实战1200 例(第II卷) 842 private void button1_Click(object sender, EventArgs e) { if (textBox3.Text != "") { if (DecryptPwd(textBox3.Text) == textBox2.Text) //对<em>加密</em>过的登录密码进行<em>解密</em> MessageBox.Show("用户登录成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show("用户密码错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } 上面的<em>代码</em>中用到了DecryptPwd 方法,该方法为自定义的、返回值类型为string 的方法,主要用来<em>解密</em>用 户登录密码,它有一个参数,主要用来表示经过<em>加密</em>的用户登录密码。DecryptPwd 方法的实现<em>代码</em>如下: /// /// <em>解密</em>用户登录密码 /// /// 经过<em>加密</em>的用户登录密码 /// <em>解密</em>后的用户登录密码 private string DecryptPwd(string str) { try { int j, k, m, n = 0; int len = randStr.Length; //获取伪随机数长度 byte[] btData = new byte[str.Length / 2]; //定义一个字节数组,并指定长度 for (int i = 0; i < str.Length; i += 2) //对登录密码进行<em>解密</em> { k = randStr.IndexOf(str[i]); m = randStr.IndexOf(str[i + 1]); j = m / 8; m = m - j * 8; btData[n] = (byte)(j * len + k); btData[n] = (byte)((int)btData[n] ^ m); n++; } return Encoding.Default.GetString(btData); //返回<em>解密</em>后的登录密码 } catch { return ""; } } 秘 笈心法 心法领悟577:如何将字符串颠倒输出? 颠倒输出字符串时,可以先将要输出的字符串保存到一个char 类型的数组中,然后使用Array 类的Reverse 方法。将字符串颠倒输出的<em>代码</em>如下: string str1 = textBox1.Text.Trim(); char[] charstr = str1.ToCharArray(); Array.Reverse(charstr); string str2 = new string(charstr); textBox2.Text = str2; 实例578 以XML格式导入导出密钥 光盘位置:光盘\MR\19\578 高级 趣味指数: 实 例说明 本实例主要实现以XML 格式导入导出密钥,从而实现对数据进行<em>加密</em>和<em>解密</em>的功能。运行本实例,首先 在窗体中显示生成的公钥和私钥,然后输入明文数据,单击“<em>加密</em>”按钮,对输入的明文数据进行<em>加密</em>;单击 “<em>解密</em>”按钮,对<em>加密</em>后的数据进行<em>解密</em>。实例运行效果如图19.8 所示。 第19章 <em>加密</em>与<em>解密</em>技术 843 图19.8 以XML 格式导入导出密钥 关 键技术 本实例实现时主要用到了RSACryptoServiceProvider 类的ToXmlString方法、Encrypt 方法和Decrypt 方法, 下面对本实例中用到的关键技术进行详细讲解。 (1)RSACryptoServiceProvider 类的ToXmlString方法 RSACryptoServiceProvider 类用来使用<em>加密</em>服务提供程序(CSP)提供的RSA 算法的实现执行不对称<em>加密</em>和 <em>解密</em>,其ToXmlString 方法主要用来创建并返回包含当前RSA 对象的密钥的XML 字符串,该方法的语法格式 如下: public override string ToXmlString(bool includePrivateParameters) 参数说明  includePrivateParameters:true 表示同时包含RSA公钥和私钥,false 表示仅包含公钥。  返回值:包含当前RSA对象的密钥的XML字符串。  说明:RSACryptoServiceProvider 类位于System.Security.Cryptography 命名空间下。 (2)RSACryptoServiceProvider 类的Encrypt方法 该方法主要使用RSA算法对数据进行<em>加密</em>,其语法格式如下: public byte[] Encrypt(byte[] rgb,bool fOAEP) 参数说明  rgb:要<em>加密</em>的数据。  fOAEP:如果为true,则使用OAEP 填充(仅在运行Microsoft Windows XP 或更高版本的计算机上可用) 执行直接的RSA <em>加密</em>;如果为false,则使用PKCS#1 1.5 版填充。  返回值:字节数组,表示已<em>加密</em>的数据。 (3)RSACryptoServiceProvider 类的Decrypt方法 该方法主要使用RSA算法对数据进行<em>解密</em>,其语法格式如下: public byte[] Decrypt(byte[] rgb,bool fOAEP) 参数说明  rgb:要<em>解密</em>的数据。  fOAEP:如果为true,则使用OAEP 填充(仅在运行Microsoft Windows XP 或更高版本的计算机上可用) 执行直接的RSA <em>解密</em>;如果为false,则使用PKCS#1 1.5 版填充。  返回值:字节数组,表示已<em>解密</em>的数据,它是<em>加密</em>前的原始纯文本。 设 计过程 (1)打开Visual Studio 2008 开发环境,新建一个Windows窗体应用程序,并将其命名为KeyToXML。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加5 个TextBox 控件,分别用来显示 C#开发实战1200 例(第II卷) 844 公钥、显示私钥、输入明文数据、显示<em>加密</em>后的数据和显示<em>解密</em>后的数据;添加两个Button 控件,分别用来执 行数据<em>加密</em>和<em>解密</em>操作。 (3)程序主要<em>代码</em>如下。 在Frm_Main 窗体的后台<em>代码</em>中,首先创建RSACryptoServiceProvider 对象,并且定义一个字节数组,用来 存储临时数据,<em>代码</em>如下: RSACryptoServiceProvider RSACrypto = new RSACryptoServiceProvider(); //创建RSA 算法<em>加密</em><em>解密</em>对象 byte[] M_bt_Data; //定义一个字节数组,用来存储临时数据 Frm_Main 窗体加载时,在文本框中显示程序自动生成的公钥和私钥数据,<em>代码</em>如下: private void Frm_Main_Load(object sender, EventArgs e) { this.textBox1.Text = RSACrypto.ToXmlString(true); //显示生成的公钥 this.textBox2.Text = RSACrypto.ToXmlString(false); //显示生成的私钥 } 当用户输入明文数据之后,单击“<em>加密</em>”按钮,调用RSACryptoServiceProvider 类的Encrypt方法对数据进 行<em>加密</em>,并且使用Encoding 类的UTF8 编码方式的GetString 方法得到<em>加密</em>后的数据,显示在文本框中。“<em>加密</em>” 按钮的Click事件<em>代码</em>如下: private void button1_Click(object sender, EventArgs e) { if (textBox3.Text != "") //判断是否输入了要<em>加密</em>的数据 { byte[] P_bt_Encrypt = Encoding.UTF8.GetBytes(textBox3.Text); //将要<em>加密</em>的数据转换为字节数组 M_bt_Data = RSACrypto.Encrypt(P_bt_Encrypt, false); //<em>加密</em>数据 textBox4.Text = Encoding.UTF8.GetString(M_bt_Data); //显示<em>加密</em>数据 } } 单击“<em>解密</em>”按钮,调用RSACryptoServiceProvider 类的Decrypt方法对<em>加密</em>过的数据进行<em>解密</em>,并且使用 Encoding 类的UTF8 编码方式的GetString 方法得到<em>解密</em>后的数据,显示在文本框中。“<em>解密</em>”按钮的Click 事 件<em>代码</em>如下: private void button2_Click(object sender, EventArgs e) { if (textBox4.Text != "") //判断是否有<em>加密</em>过的数据 { byte[] P_bt_Decrypt = RSACrypto.Decrypt(M_bt_Data, false); //对数据进行<em>解密</em> textBox5.Text = Encoding.UTF8.GetString(P_bt_Decrypt); //显示<em>解密</em>数据 } } 秘 笈心法 心法领悟578:如何判断字符串是否为日期格式? 判断字符串是否为日期格式时,可以使用正则表达式。验证日期格式的正则表达式主要有以下3 种: \b(?\d{2,4})/(?\d{1,2})/(?\d{1,2})\b 或 \b(?\d{2,4})-(?\d{1,2})-(?\d{1,2})\b 或 \b(?\d{2,4})年(?\d{1,2})月(?\d{1,2})日\b 实例579 以参数格式导入导出密钥 光盘位置:光盘\MR\19\579 高级 趣味指数: 实 例说明 本实例主要实现以参数格式导入导出密钥,从而实现对数据进行<em>加密</em>和<em>解密</em>的功能。运行本实例,在窗体 第19章 <em>加密</em>与<em>解密</em>技术 845 中输入明文数据,单击“<em>加密</em>”按钮,对输入的明文数据进行<em>加密</em>;单击“解 密”按钮,对<em>加密</em>后的数据进行<em>解密</em>。实例运行效果如图19.9 所示。 关 键技术 本实例实现时主要用到了RSACryptoServiceProvider 类的ExportParameters 方法、ImportParameters 方法、Encrypt 方法和Decrypt 方法,下面对本实例 中用到的关键技术进行详细讲解。 (1)RSACryptoServiceProvider 类的ExportParameters 方法 该方法主要用来导出RSAParameters标准参数,其语法格式如下: public override RSAParameters ExportParameters(bool includePrivateParameters) 参数说明  includePrivateParameters:如果要包括私有参数,则为true;否则为false。  返回值:RSA 算法的标准参数。 (2)RSACryptoServiceProvider 类的ImportParameters 方法 该方法主要用来导入指定的RSAParameters标准参数,其语法格式如下: public override void ImportParameters(RSAParameters parameters) 参数说明 parameters:RSA 算法的标准参数。  说明:关于RSACryptoServiceProvider 类的Encrypt 方法和Decrypt 方法的详细讲解,请参见实例578 中的 关键技术。 设 计过程 (1)打开Visual Studio 2008 开发环境,新建一个Windows窗体应用程序,并将其命名为KeyToParameter。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加3 个TextBox 控件,分别用来输入 明文数据、显示<em>加密</em>后的数据和<em>解密</em>后的数据;添加两个Button 控件,分别用来执行数据<em>加密</em>和<em>解密</em>操作。 (3)程序主要<em>代码</em>如下。 Frm_Main 窗体的后台<em>代码</em>中,首先创建RSACryptoServiceProvider 对象和RSAParameters 标准参数对象, 并且定义一个字节数组,用来存储临时数据,<em>代码</em>如下: RSACryptoServiceProvider RSACrypto; //声明RSA 算法<em>加密</em><em>解密</em>对象 RSAParameters RSAParame; //声明RSAParameters 参数对象 byte[] M_bt_Data; //定义一个字节数组,用来存储临时数据 在Frm_Main 窗体的构造函数中,调用RSACryptoServiceProvider 类的ImportParameters 方法导入 RSAParameters标准参数,实现<em>代码</em>如下: public Frm_Main() { InitializeComponent(); RSACrypto = new RSACryptoServiceProvider(); //初始化RSA 算法<em>加密</em><em>解密</em>对象 RSAParame = RSACrypto.ExportParameters(true); //初始化RSAParameters 参数 RSACrypto.Clear(); //清空RSACryptoServiceProvider 对象 RSACrypto = new RSACryptoServiceProvider(); //初始化RSA 算法<em>加密</em><em>解密</em>对象 RSACrypto.ImportParameters(RSAParame); //导入密钥 } 当用户输入明文数据之后,单击“<em>加密</em>”按钮,调用RSACryptoServiceProvider 类的Encrypt方法对数据进 行<em>加密</em>,并且使用Encoding 类的UTF8 编码方式的GetString 方法得到<em>加密</em>后的数据,显示在文本框中。“<em>加密</em>” 按钮的Click事件<em>代码</em>如下: private void button1_Click(object sender, EventArgs e) { if (textBox1.Text != "") //判断是否输入了要<em>加密</em>的数据 { 图19.9 以参数格式导入导出密钥 C#开发实战1200 例(第II卷) 846 byte[] P_bt_Encrypt = Encoding.UTF8.GetBytes(textBox1.Text); //将要<em>加密</em>的数据转换为字节数组 M_bt_Data = RSACrypto.Encrypt(P_bt_Encrypt, false); //<em>加密</em>数据 textBox2.Text = Encoding.UTF8.GetString(M_bt_Data); //显示<em>加密</em>数据 } } 单击“<em>解密</em>”按钮,调用RSACryptoServiceProvider 类的Decrypt方法对<em>加密</em>过的数据进行<em>解密</em>,并且使用 Encoding 类的UTF8 编码方式的GetString 方法得到<em>解密</em>后的数据,显示在文本框中。“<em>解密</em>”按钮的Click 事 件<em>代码</em>如下: private void button2_Click(object sender, EventArgs e) { if (textBox2.Text != "") //判断是否有<em>加密</em>过的数据 { byte[] P_bt_Decrypt = RSACrypto.Decrypt(M_bt_Data, false); //对数据进行<em>解密</em> textBox3.Text = Encoding.UTF8.GetString(P_bt_Decrypt); //显示<em>解密</em>数据 } } 秘 笈心法 心法领悟579:巧截字符串中的数字。 截取字符串中的数字时,可以先使用CharEnumerator 对象的MoveNext 方法循环访问字符串中的每个字符, 并将字符用System.Text.Encoding 类中ASCII 编码方式的GetBytes 方法进行编码,然后判断经过编码之后的字符 的ASCII码值是否介于48和57之间,如果是,则将其显示在textBox文本框中。截取字符串中数字的<em>代码</em>如下: CharEnumerator CEnumerator = textBox1.Text.GetEnumerator(); while (CEnumerator.MoveNext()) { byte[] array = new byte[1]; array = System.Text.Encoding.ASCII.GetBytes(CEnumerator.Current.ToString()); int asciicode = (short)(array[0]); if (asciicode >= 48 && asciicode ; //清空文本框 } catch (Exception ee) //如果出现异常 { MessageBox.Show(ee.Message); //输出异常 } } 秘 笈心法 心法领悟581:如何去除字符串尾空格? 去除字符串尾空格<em>需要</em>使用string 类的Trim 方法,该方法用来从字符串的开始和末尾处移除空白字符的所 有匹配项。例如,下面的<em>代码</em>用来去掉textBox1 文本框中字符串的尾空格,并将结果显示在textBox2 文本框中: textBox2.Text = textBox1.Text.Trim(); 实例582 对文件进行<em>加密</em>保护 光盘位置:光盘\MR\19\582 高级 趣味指数: 实 例说明 随着计算机的普及,文件的安全越来越重要,本实例使用C#制作了一个对文件进行<em>加密</em>保护的实例。运行 C#开发实战1200 例(第II卷) 852 本实例,选择要<em>加密</em>或<em>解密</em>的文件,用程序来判断是否是<em>加密</em>过的文件, 如果不是,输入<em>加密</em>密码,单击“<em>加密</em>”按钮,<em>加密</em>已选择的文件;如果 是,输入<em>解密</em>密码,单击“<em>解密</em>”按钮,<em>解密</em>选择的<em>加密</em>文件。实例运行 效果如图19.12 所示。 关 键技术 本实例制作对文件进行<em>加密</em>保护程序时,首先选择要<em>加密</em>或<em>解密</em>的文 件,并输入<em>加密</em>或<em>解密</em>密码,然后启动一个新的线程,使用输入的密码对 指定的文件进行<em>加密</em>或<em>解密</em>操作。另外,如果对文件执行的是<em>加密</em>操作,则<em>加密</em>成功后删除原文件。具体实现 过程中,主要用到了DES 类的CreateEncryptor 和CreateDecryptor 方法、CryptoStream 类的构造函数及其Write 方法。  说明:关于DES 类的CreateEncryptor 方法和CreateDecryptor 方法、CryptoStream 类的构造函数及其Write 方法的详细讲解,请参见实例575中的关键技术。 设 计过程 (1)打开Visual Studio 2008 开发环境,新建一个Windows窗体应用程序,并将其命名为ProtectFile。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加一个OpenFileDialog 控件,用来显 示“打开”对话框;添加两个TextBox 控件,分别用来显示选择的文件路径和输入<em>加密</em>、<em>解密</em>密码;添加3 个 Button控件,分别用来执行选择<em>加密</em>或<em>解密</em>的文件、<em>加密</em>文件和<em>解密</em>文件操作;添加一个ProgressBar控件,用 来显示<em>加密</em>或<em>解密</em>的进度。 (3)程序主要<em>代码</em>如下。 Frm_Main 窗体加载时,首先将<em>加密</em>文件
C#代码RSA加密解密
如果是要对发送的消息进行<em>加密</em>和<em>解密</em>,<em>加密</em>时用公钥,<em>解密</em>时用私钥,即使密文被窃取也无法破解。   如果是要对软件进行注册,生成注册码,则服务端将用户的硬盘号用私钥<em>加密</em>,客户端用公钥<em>解密</em>,<em>解密</em>后将客户端的硬盘号进行MD5<em>加密</em>,将得到的结果和<em>解密</em>后的结果进行比较,如果相同,说明是注册用户,否则为非注册用户。
hill密码加密解密代码
hill密码是数学建模中基础的建模载体,<em>加密</em>与<em>解密</em>是最基本的实现要求
帮忙解密一段代码
-
高分求加密(解密)代码
我正在做一个用户注册.用户登陆界面rn想在注册界面实现,密码的<em>加密</em>,然后充入数据库,rn想在登陆页面读取数据库的信息(<em>解密</em>).rn请大侠<em>帮忙</em>,我用的是 C#+SQL , .NET程序rn
谁帮我写个加密解密的函数?
谁帮我写个<em>加密</em>和<em>解密</em>的函数?
加密解密》完整的配套代码
一个古老的话题,一个至今充满神秘的领域...... 探索MS可执行文件(.exe)的勇士们,机会来了。
javascript 代码加密解密小工具
javascript <em>代码</em><em>加密</em>和<em>解密</em>小工具
在线等待,需求帮助和在线赚钱,ASP网站需要验证和注册,才能使用ASP网站的,ASP网站代码加密
由于<em>asp</em><em>代码</em>可见,而且没有编译的。我制作了一个电影<em>网站</em>,好辛苦做出来的,而且美工也不错。rn拿出去卖,一会儿就被别人给盗去也卖了,好头痛。rnrn大家帮我想想,如果<em>加密</em>这ASP程序<em>代码</em>,并且我想做成这电影<em>网站</em>程序捆定服务器IP地址的,给个注册验证串,如果验证不通知,就不能访问任何页面。rnrn有谁能帮帮我的。分不够继续加rnrnrnrnQQ:81832527rnrnrn有谁能帮助我的,我可以给你付薪水,就是帮我<em>加密</em>个ASP<em>代码</em>,或者是ASP<em>网站</em>绑定域名,提供序列号注册的。
加密解密(六)-- 解密
常用<em>解密</em>方式 爆破方式 爆破方式就是通过修改程序流程来达到<em>解密</em>注册保护方式的目的,即指通过静态分析的过程。 跟踪注册过程及写出注册机 常见<em>解密</em>阶段 爆破阶段 追出非明码比较的注册码【它们通常多为多条件和计算型形式】 做出通用的注册机 学习掌握一定的密码学知识,并了解常见的公共<em>加密</em>算法,做出利用成熟<em>加密</em>算法或密码学原理<em>加密</em>软件的注册机或提出解决方法 国内软件主要加<em>解密</em>方法 软<em>解密</em> 针对...
个人网站代码ASP网站代码
轻松搞定你的个人<em>网站</em>,世界不出不在你的空间!
求高手帮忙看看--》ASP进行3DES加密解密
怎样用ASP进行3DES<em>加密</em>和<em>解密</em>呢?在线等待啊 <em>谢谢</em>啊! <em>加密</em>和<em>解密</em>的过程中读取文本密钥!
解密代码!在线等待.(有加密代码,寻解密)
小弟我最近找到一段<em>加密</em><em>代码</em>,用了一下还可以rnrn反正可以<em>加密</em>了:)rnrn可是却没有<em>解密</em>的<em>代码</em>.rnrn希望高手们指点!最好给出<em>代码</em>,<em>谢谢</em>.rnPublic Function EncryPassword(ByVal strUserID As String, ByVal strPassword As String) As Stringrn Dim strUser As Stringrn Dim strPass As Stringrn Dim arrKey(24) As Integerrn Dim arrPWD(24) As Integerrn Dim intAdj As Integerrn Dim intUserLen As Integer, intPassLen As Integer, i As Integer, j As Integerrn Dim strOutPass As Stringrn Dim intMin As Integer, intMax As Integer, intRange As Integerrn rn EncryPassword = ""rn rn strOutPass = ""rn intAdj = -1rn strUser = Trim(strUserID)rn strPass = Trim(strPassword)rn intUserLen = Len(strUser)rn intPassLen = Len(strPass)rn rn strUser = StrReverse(strUser)rn rn For i = 0 To intUserLen - 1rn arrKey(i) = Asc(Mid(strUser, i + 1, 1))rn arrKey(i) = Mid(arrKey(i), Len(arrKey(i)), 1)rn arrKey(i) = arrKey(i) * intAdjrn intAdj = intAdj * -1rn Nextrn rn i = 1rn j = 1rn rn strPass = StrReverse(strPass)rn For i = 0 To intPassLen - 1rn arrPWD(i) = Asc(Mid(strPass, i + 1, 1))rn rn If (arrPWD(i) >= Asc("a")) And (arrPWD(i) = Asc("A")) And (arrPWD(i) = Asc("0")) And (arrPWD(i) intMax Thenrn arrPWD(i) = intRange - intMax + intMinrn arrPWD(i) = arrPWD(i) * -1rn ElseIf intRange < intMin Thenrn arrPWD(i) = intMax - intMin + intRangern Elsern arrPWD(i) = intRangern End Ifrn rn If (j + 1) >= intUserLen Thenrn j = 1rn Elsern j = j + 1rn End Ifrn rn strOutPass = strOutPass & Chr(Abs(arrPWD(i)))rn Nextrn rn EncryPassword = strOutPassrnEnd Function
关于维吉尼亚的加密解密的算法,请各位高手帮忙谢谢
我知道维吉尼亚<em>加密</em>的算法可是不知道<em>解密</em>的算法,各位能不能帮帮我啊!!
flixel 游戏源代码下载
这是学习flixel 的优秀资源,有详细的注释 相关下载链接:[url=//download.csdn.net/download/leizhenyu125/3190973?utm_source=bbsseo]//download.csdn.net/download/leizhenyu125/3190973?utm_source=bbsseo[/url]
pdf打印机下载
很好用的pdf打印机 相关下载链接:[url=//download.csdn.net/download/mng123/3835953?utm_source=bbsseo]//download.csdn.net/download/mng123/3835953?utm_source=bbsseo[/url]
or升级包下载
用于or中软件的升级,恭喜各位升级成功,且其中包含各种的源代码。 相关下载链接:[url=//download.csdn.net/download/honeyqiang567/4685144?utm_source=bbsseo]//download.csdn.net/download/honeyqiang567/4685144?utm_source=bbsseo[/url]
我们是很有底线的