| 发表于:2007-02-07 10:06:24 楼主 |
using system; using system.data; using system.configuration; using system.collections; using system.web; using system.web.security; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.web.ui.htmlcontrols; using system.text; using system.security.cryptography; using system.io; public partial class default2 : system.web.ui.page { private string secretkey1= "aa "; private string secretkey2= "bb "; protected void page_load(object sender, eventargs e) { this.label1.text = encrypt1( "aa "); } /// <summary> /// 一次加密 /// </summary> /// <param name= "ptoencrypt "> 加密内容 </param> /// <returns> </returns> private string encrypt1(string ptoencrypt) { string encryptstring = " "; try { descryptoserviceprovider des = new descryptoserviceprovider(); byte[] inputbytearray = encoding.default.getbytes(ptoencrypt); des.key = asciiencoding.ascii.getbytes(secretkey1); des.iv = asciiencoding.ascii.getbytes(secretkey1); memorystream ms = new memorystream(); cryptostream cs = new cryptostream(ms, des.createencryptor(), cryptostreammode.write); cs.write(inputbytearray, 0, inputbytearray.length); cs.flushfinalblock(); stringbuilder ret = new stringbuilder(); foreach (byte b in ms.toarray()) { ret.appendformat( "{0:x2} ", b); } encryptstring = encrypt2(ret.tostring()); } catch { encryptstring = "encryptfailing "; } return encryptstring; } /// <summary> /// 二次加密 /// </summary> /// <param name= "ptoencrypt "> 加密内容 </param> /// <returns> </returns> private string encrypt2(string ptoencrypt) { string encryptstring = " "; try { descryptoserviceprovider des = new descryptoserviceprovider(); byte[] inputbytearray = encoding.default.getbytes(ptoencrypt); des.key = asciiencoding.ascii.getbytes(secretkey2); des.iv = asciiencoding.ascii.getbytes(secretkey2); memorystream ms = new memorystream(); cryptostream cs = new cryptostream(ms, des.createencryptor(), cryptostreammode.write); cs.write(inputbytearray, 0, inputbytearray.length); cs.flushfinalblock(); stringbuilder ret = new stringbuilder(); foreach (byte b in ms.toarray()) { ret.appendformat( "{0:x2} ", b); } encryptstring = ret.tostring(); } catch { encryptstring = "encryptfailing "; } return encryptstring; } /// <summary> /// 一次解密 /// </summary> /// <param name= "ptodecrypt "> 解密内容 </param> /// <returns> </returns> private string decrypt1(string ptodecrypt) { string encryptstring = " "; memorystream ms = new memorystream(); try { descryptoserviceprovider des = new descryptoserviceprovider(); byte[] inputbytearray = new byte[ptodecrypt.length / 2]; for (int x = 0; x < ptodecrypt.length / 2; x++) { int i = (convert.toint32(ptodecrypt.substring(x * 2, 2), 16)); inputbytearray[x] = (byte)i; } des.key = asciiencoding.ascii.getbytes(secretkey2); des.iv = asciiencoding.ascii.getbytes(secretkey2); cryptostream cs = new cryptostream(ms, des.createdecryptor(), cryptostreammode.write); cs.write(inputbytearray, 0, inputbytearray.length); cs.flushfinalblock(); stringbuilder ret = new stringbuilder(); encryptstring = decrypt2(system.text.encoding.default.getstring(ms.toarray())); } catch { encryptstring = "encryptfailing "; } return encryptstring; } /// <summary> /// 二次解密 /// </summary> /// <param name= "ptodecrypt "> 解密内容 </param> /// <returns> </returns> private string decrypt2(string ptodecrypt) { string encryptstring = " "; memorystream ms = new memorystream(); try { descryptoserviceprovider des = new descryptoserviceprovider(); byte[] inputbytearray = new byte[ptodecrypt.length / 2]; for (int x = 0; x < ptodecrypt.length / 2; x++) { int i = (convert.toint32(ptodecrypt.substring(x * 2, 2), 16)); inputbytearray[x] = (byte)i; } des.key = asciiencoding.ascii.getbytes(secretkey1); des.iv = asciiencoding.ascii.getbytes(secretkey1); cryptostream cs = new cryptostream(ms, des.createdecryptor(), cryptostreammode.write); cs.write(inputbytearray, 0, inputbytearray.length); cs.flushfinalblock(); stringbuilder ret = new stringbuilder(); encryptstring = system.text.encoding.default.getstring(ms.toarray()); } catch { encryptstring = "encryptfailing "; } return encryptstring; } } //问题 des.key = asciiencoding.ascii.getbytes(secretkey1); des.iv = asciiencoding.ascii.getbytes(secretkey1); 这两句执行就出错,请问是什么原因? |
|
|
|
|