仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1215|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计DotNet顶用到的加密算法总结

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:49:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
说句实话,Java跨平台根本就不是外行人想想的那种,一次编译,处处运行。加密|算法1publicclassCryptUtil
2{
3publicstaticstringDecryptString(stringinput)
4{
5if(input.Equals(string.Empty))
6{
7returninput;
8}
9
10byte[]byKey={0x63,0x68,0x65,0x6E,0x79,0x75,0x61,0x6E};
11byte[]IV={0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10};
12byte[]inputByteArray=newByte[input.Length];
13DESCryptoServiceProviderdes=newDESCryptoServiceProvider();
14inputByteArray=Convert.FromBase64String(input);
15MemoryStreamms=newMemoryStream();
16CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(byKey,IV),CryptoStreamMode.Write);
17cs.Write(inputByteArray,0,inputByteArray.Length);
18cs.FlushFinalBlock();
19Encodingencoding=newUTF8Encoding();
20returnencoding.GetString(ms.ToArray());
21}
22
23publicstaticstringEncryptString(stringinput)
24{
25if(input.Equals(string.Empty))
26{
27returninput;
28}
29
30byte[]byKey={0x63,0x68,0x65,0x6E,0x79,0x75,0x61,0x6E};
31byte[]IV={0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10};
32DESCryptoServiceProviderdes=newDESCryptoServiceProvider();
33byte[]inputByteArray=Encoding.UTF8.GetBytes(input);
34MemoryStreamms=newMemoryStream();
35CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(byKey,IV),CryptoStreamMode.Write);
36cs.Write(inputByteArray,0,inputByteArray.Length);
37cs.FlushFinalBlock();
38returnConvert.ToBase64String(ms.ToArray());
39}
40/**////<summary>
41///DES+Base64加密
42///</summary>
43///<paramname="input">明笔墨符串</param>
44///<returns>已加密字符串</returns>
45publicstaticstringDesBase64Encrypt(stringinput)
46{
47System.Security.Cryptography.DESdes=System.Security.Cryptography.DES.Create();
48des.Mode=System.Security.Cryptography.CipherMode.ECB;
49ICryptoTransformct;
50MemoryStreamms;
51CryptoStreamcs;
52byte[]byt;
53byte[]Key=newbyte[8]{56,50,55,56,56,55,49,49};
54byte[]IV=newbyte[8]{0,0,0,0,0,0,0,0};
55
56ct=des.CreateEncryptor(Key,IV);
57
58byt=Encoding.GetEncoding("GB2312").GetBytes(input);//依据GB2312编码对字符串处置,转换成byte数组
59
60ms=newMemoryStream();
61cs=newCryptoStream(ms,ct,CryptoStreamMode.Write);
62cs.Write(byt,0,byt.Length);
63cs.FlushFinalBlock();
64
65cs.Close();
66
67byte[]answer=ms.ToArray();
68for(intj=0;j<answer.Length;j++)
69{
70Console.Write(answer[j].ToString()+"");
71}
72Console.WriteLine();
73returnConvert.ToBase64String(ms.ToArray());//将加密的byte数组按照Base64编码转换成字符串
74}
75
76/**////<summary>
77///DES+Base64解密
78///</summary>
79///<paramname="input">密笔墨符串</param>
80///<returns>解密字符串</returns>
81publicstaticstringDesBase64Decrypt(stringinput)
82{
83System.Security.Cryptography.DESdes=System.Security.Cryptography.DES.Create();
84des.Mode=System.Security.Cryptography.CipherMode.ECB;
85ICryptoTransformct;
86MemoryStreamms;
87CryptoStreamcs;
88byte[]byt;
89byte[]Key=newbyte[8]{56,50,55,56,56,55,49,49};
90byte[]IV=newbyte[8]{0,0,0,0,0,0,0,0};
91
92ct=des.CreateDecryptor(Key,IV);
93byt=Convert.FromBase64String(input);//将密文以Base64编码转换成byte数组
94
95ms=newMemoryStream();
96cs=newCryptoStream(ms,ct,CryptoStreamMode.Write);
97cs.Write(byt,0,byt.Length);
98cs.FlushFinalBlock();
99
100cs.Close();
101
102returnEncoding.GetEncoding("GB2312").GetString(ms.ToArray());//将明文以GB2312编码转换成字符串
103}
104
105
106
107/**////<summary>
108///DES+Base64加密
109///</summary>
110///<paramname="input">明笔墨符串</param>
111///<returns>已加密字符串</returns>
112publicstaticstringDesBase64EncryptForID5(stringinput)
113{
114System.Security.Cryptography.DESdes=System.Security.Cryptography.DES.Create();
115des.Mode=System.Security.Cryptography.CipherMode.CBC;
116ICryptoTransformct;
117MemoryStreamms;
118CryptoStreamcs;
119byte[]byt;
120byte[]Key=newbyte[8]{56,50,55,56,56,55,49,49};
121byte[]IV=newbyte[8]{56,50,55,56,56,55,49,49};
122
123ct=des.CreateEncryptor(Key,IV);
124
125byt=Encoding.GetEncoding("GB2312").GetBytes(input);//依据GB2312编码对字符串处置,转换成byte数组
126
127ms=newMemoryStream();
128cs=newCryptoStream(ms,ct,CryptoStreamMode.Write);
129cs.Write(byt,0,byt.Length);
130cs.FlushFinalBlock();
131
132cs.Close();
133
134byte[]answer=ms.ToArray();
135for(intj=0;j<answer.Length;j++)
136{
137Console.Write(answer[j].ToString()+"");
138}
139Console.WriteLine();
140returnConvert.ToBase64String(ms.ToArray());//将加密的byte数组按照Base64编码转换成字符串
141}
142
143
144/**////<summary>
145///DES+Base64解密
146///</summary>
147///<paramname="input">密笔墨符串</param>
148///<returns>解密字符串</returns>
149publicstaticstringDesBase64DecryptForID5(stringinput)
150{
151System.Security.Cryptography.DESdes=System.Security.Cryptography.DES.Create();
152des.Mode=System.Security.Cryptography.CipherMode.CBC;
153ICryptoTransformct;
154MemoryStreamms;
155CryptoStreamcs;
156byte[]byt;
157byte[]Key=newbyte[8]{56,50,55,56,56,55,49,49};
158byte[]IV=newbyte[8]{56,50,55,56,56,55,49,49};
159
160ct=des.CreateDecryptor(Key,IV);
161byt=Convert.FromBase64String(input);//将密文以Base64编码转换成byte数组
162
163ms=newMemoryStream();
164cs=newCryptoStream(ms,ct,CryptoStreamMode.Write);
165cs.Write(byt,0,byt.Length);
166cs.FlushFinalBlock();
167
168cs.Close();
169
170returnEncoding.GetEncoding("GB2312").GetString(ms.ToArray());//将明文以GB2312编码转换成字符串
171}
172
173
174/**////<summary>
175///3DES加密Byte[]toHEXstring
176///</summary>
177///<paramname="input">明笔墨符串</param>
178///<returns>已加密字符串</returns>
179publicstaticstringThreeDesEncryptHEX(stringinput)
180{
181stringresult="";
182System.Security.Cryptography.TripleDESdes=System.Security.Cryptography.TripleDES.Create();
183des.Mode=System.Security.Cryptography.CipherMode.CBC;
184des.Padding=System.Security.Cryptography.PaddingMode.PKCS7;
185ICryptoTransformct;
186MemoryStreamms;
187CryptoStreamcs;
188byte[]byt;
189byte[]Key=newbyte[24]{
1901,2,3,4,5,6,
1911,2,3,4,5,6,
1921,2,3,4,5,6,
1931,2,3,4,5,6
194};
195byte[]IV=newbyte[8]{1,2,3,4,5,6,1,2};
196
197ct=des.CreateEncryptor(Key,IV);
198
199byt=Encoding.GetEncoding("GB2312").GetBytes(input);//依据GB2312编码对字符串处置,转换成byte数组
200
201ms=newMemoryStream();
202cs=newCryptoStream(ms,ct,CryptoStreamMode.Write);
203cs.Write(byt,0,byt.Length);
204cs.FlushFinalBlock();
205
206cs.Close();
207
208byte[]answer=ms.ToArray();
209for(intj=0;j<answer.Length;j++)
210{
211result+=answer[j].ToString("x").PadLeft(2,0);
212}
213returnresult;
214}
215
216/**////<summary>
217///3DES+HEXtobyte[]解密
218///</summary>
219///<paramname="input">密笔墨符串</param>
220///<returns>解密字符串</returns>
221publicstaticstringThreeDesDecryptHEX(stringinput)
222{
223System.Security.Cryptography.TripleDESdes=System.Security.Cryptography.TripleDES.Create();
224des.Mode=System.Security.Cryptography.CipherMode.CBC;
225des.Padding=System.Security.Cryptography.PaddingMode.PKCS7;
226ICryptoTransformct;
227MemoryStreamms;
228CryptoStreamcs;
229byte[]Key=newbyte[24]{
2301,2,3,4,5,6,
2311,2,3,4,5,6,
2321,2,3,4,5,6,
2331,2,3,4,5,6
234};
235byte[]IV=newbyte[8]{1,2,3,4,5,6,1,2};
236
237ct=des.CreateDecryptor(Key,IV);
238//byt=Convert.FromBase64String(input);//将密文以HEXtobyte[]编码转换成byte数组
239if(input.Length<=1)
240{
241thrownewException("encryptedHEXstringistooshort!");
242}
243byte[]byt=newbyte[input.Length/2];
244for(inti=0;i<byt.Length;i++)
245{
246//Console.WriteLine(input.Substring(i*2,2));
247byt[i]=Convert.ToByte(input.Substring(i*2,2),16);
248}
249
250ms=newMemoryStream();
251cs=newCryptoStream(ms,ct,CryptoStreamMode.Write);
252cs.Write(byt,0,byt.Length);
253cs.FlushFinalBlock();
254
255cs.Close();
256
257returnEncoding.GetEncoding("GB2312").GetString(ms.ToArray());//将明文以GB2312编码转换成字符串
258}
259/**////<summary>
260///Base64解码
261///</summary>
262///<paramname="base64Str"></param>
263///<returns></returns>
264publicstaticstringDecodingFromBase64(stringbase64Str)
265{
266Byte[]bytes=Convert.FromBase64String(base64Str);
267returnSystem.Text.Encoding.UTF8.GetString(bytes);
268}
269/**////<summary>
270///Base64编码
271///</summary>
272///<paramname="str"></param>
273///<returns></returns>
274publicstaticstringEncodingToBase64(stringstr)
275{
276returnConvert.ToBase64String(Encoding.UTF8.GetBytes(str));
277}
278/**////<summary>
279///依据指定的编码体例Base64解码
280///</summary>
281///<paramname="base64Str"></param>
282///<paramname="strEncoding"></param>
283///<returns></returns>
284publicstaticstringDecodingFromBase64(stringbase64Str,System.Text.EncodingstrEncoding)
285{
286Byte[]bytes=Convert.FromBase64String(base64Str);
287returnstrEncoding.GetString(bytes);
288}
289/**////<summary>
290///依据指定的编码体例Base64编码
291///</summary>
292///<paramname="str"></param>
293///<paramname="strEncoding"></param>
294///<returns></returns>
295publicstaticstringEncodingToBase64(stringstr,System.Text.EncodingstrEncoding)
296{
297returnConvert.ToBase64String(strEncoding.GetBytes(str));
298}
299}
两个经常使用的办法
1/**////<summary>
2///经由过程字节数组情势的密钥猎取字符串情势的密钥
3///</summary>
4voidGetStringByByteArray()
5{
6byte[]Key=newbyte[8]{56,50,55,56,56,55,49,49};
7Response.Write(System.Text.Encoding.Default.GetString(Key));
8Response.End();
9}
10
11/**////<summary>
12///经由过程字符串情势的密钥猎取字节数组情势的密钥
13///</summary>
14voidGetByteArrayByString()
15{
16stringkey="82788711";
17Response.Write(System.Text.Encoding.Default.GetBytes(key));
18Response.End();
19
20}
有这里没包含的,接待复兴,人人一同总结一下~~
我认为,可以通过更加简单的首次编译,而增加第二次编译的负担,来提高java的运行效率。只是将java源代码进行简单的等价转换,而不假设编译成某种虚拟机器的目标格式,而由本地编译器针对性的二次编译。
老尸 该用户已被删除
沙发
发表于 2015-1-20 05:14:21 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-28 17:10:22 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
谁可相欹 该用户已被删除
地板
发表于 2015-2-5 22:19:49 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
分手快乐 该用户已被删除
5#
发表于 2015-2-13 22:38:47 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
透明 该用户已被删除
6#
发表于 2015-3-4 02:32:21 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-19 01:19:56 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
兰色精灵 该用户已被删除
8#
发表于 2015-3-27 00:58:00 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 17:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表