亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

DotNet中用到的加密算法總結

2024-07-21 02:28:15
字體:
來源:轉載
供稿:網友


  1public class cryptutil
  2    {
  3        public static string decryptstring(string input)
  4        {
  5            if (input.equals(string.empty))
  6            {
  7                return input;
  8            }
  9
 10            byte[] bykey = {0x63, 0x68, 0x65, 0x6e, 0x79, 0x75, 0x61, 0x6e};
 11            byte[] iv = {0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10};
 12            byte[] inputbytearray = new byte[input.length];
 13            descryptoserviceprovider des = new descryptoserviceprovider();
 14            inputbytearray = convert.frombase64string(input);
 15            memorystream ms = new memorystream();
 16            cryptostream cs = new cryptostream(ms, des.createdecryptor(bykey, iv), cryptostreammode.write);
 17            cs.write(inputbytearray, 0, inputbytearray.length);
 18            cs.flushfinalblock();
 19            encoding encoding = new utf8encoding();
 20            return encoding.getstring(ms.toarray());
 21        }
 22
 23        public static string encryptstring(string input)
 24        {
 25            if (input.equals(string.empty))
 26            {
 27                return input;
 28            }
 29
 30            byte[] bykey = {0x63, 0x68, 0x65, 0x6e, 0x79, 0x75, 0x61, 0x6e};
 31            byte[] iv = {0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10};
 32            descryptoserviceprovider des = new descryptoserviceprovider();
 33            byte[] inputbytearray = encoding.utf8.getbytes(input);
 34            memorystream ms = new memorystream();
 35            cryptostream cs = new cryptostream(ms, des.createencryptor(bykey, iv), cryptostreammode.write);
 36            cs.write(inputbytearray, 0, inputbytearray.length);
 37            cs.flushfinalblock();
 38            return convert.tobase64string(ms.toarray());
 39        }
 40        /**//// <summary>
 41        /// des + base64 加密
 42        /// </summary>
 43        /// <param name="input">明文字符串</param>
 44        /// <returns>已加密字符串</returns>
 45        public static string desbase64encrypt(string input)
 46        {
 47            system.security.cryptography.des des = system.security.cryptography.des.create();
 48            des.mode = system.security.cryptography.ciphermode.ecb;
 49            icryptotransform ct;
 50            memorystream ms;
 51            cryptostream cs;
 52            byte[] byt;
 53            byte[] key = new byte[8]{56,50,55,56,56,55,49,49};
 54            byte[] iv = new byte[8]{0,0,0,0,0,0,0,0};
 55
 56            ct = des.createencryptor(key, iv);
 57
 58            byt = encoding.getencoding("gb2312").getbytes(input); //根據 gb2312 編碼對字符串處理,轉換成 byte 數組
 59           
 60            ms = new memorystream();
 61            cs = new cryptostream(ms, ct, cryptostreammode.write);
 62            cs.write(byt, 0, byt.length);
 63            cs.flushfinalblock();
 64
 65            cs.close();
 66
 67            byte[] answer = ms.toarray();
 68            for(int j=0;j<answer.length;j++)
 69            {
 70                console.write(answer[j].tostring()+ " ");
 71            }
 72            console.writeline();
 73            return convert.tobase64string(ms.toarray()); // 將加密的 byte 數組依照 base64 編碼轉換成字符串
 74        }
 75
 76        /**//// <summary>
 77        /// des + base64 解密
 78        /// </summary>
 79        /// <param name="input">密文字符串</param>
 80        /// <returns>解密字符串</returns>
 81        public static string desbase64decrypt(string input)
 82        {
 83            system.security.cryptography.des des = system.security.cryptography.des.create();
 84            des.mode = system.security.cryptography.ciphermode.ecb;
 85            icryptotransform ct;
 86            memorystream ms;
 87            cryptostream cs;
 88            byte[] byt;
 89            byte[] key = new byte[8]{56,50,55,56,56,55,49,49};
 90            byte[] iv = new byte[8]{0,0,0,0,0,0,0,0};
 91           
 92            ct = des.createdecryptor(key, iv);
 93            byt = convert.frombase64string(input); // 將 密文 以 base64 編碼轉換成 byte 數組
 94
 95            ms = new memorystream();
 96            cs = new cryptostream(ms, ct, cryptostreammode.write);
 97            cs.write(byt, 0, byt.length);
 98            cs.flushfinalblock();
 99
100            cs.close();
101
102            return encoding.getencoding("gb2312").getstring(ms.toarray()); // 將 明文 以 gb2312 編碼轉換成字符串
103        }
104       
105       
106       
107        /**//// <summary>
108        /// des + base64 加密
109        /// </summary>
110        /// <param name="input">明文字符串</param>
111        /// <returns>已加密字符串</returns>
112        public static string desbase64encryptforid5(string input)
113        {
114            system.security.cryptography.des des = system.security.cryptography.des.create();
115            des.mode = system.security.cryptography.ciphermode.cbc;
116            icryptotransform ct;
117            memorystream ms;
118            cryptostream cs;
119            byte[] byt;
120            byte[] key = new byte[8]{56,50,55,56,56,55,49,49};
121            byte[] iv = new byte[8]{56,50,55,56,56,55,49,49};
122
123            ct = des.createencryptor(key, iv);
124
125            byt = encoding.getencoding("gb2312").getbytes(input); //根據 gb2312 編碼對字符串處理,轉換成 byte 數組
126           
127            ms = new memorystream();
128            cs = new cryptostream(ms, ct, cryptostreammode.write);
129            cs.write(byt, 0, byt.length);
130            cs.flushfinalblock();
131
132            cs.close();
133
134            byte[] answer = ms.toarray();
135            for(int j=0;j<answer.length;j++)
136            {
137                console.write(answer[j].tostring()+ " ");
138            }
139            console.writeline();
140            return convert.tobase64string(ms.toarray()); // 將加密的 byte 數組依照 base64 編碼轉換成字符串
141        }
142       
143       
144        /**//// <summary>
145        /// des + base64 解密
146        /// </summary>
147        /// <param name="input">密文字符串</param>
148        /// <returns>解密字符串</returns>
149        public static string desbase64decryptforid5(string input)
150        {
151            system.security.cryptography.des des = system.security.cryptography.des.create();
152            des.mode = system.security.cryptography.ciphermode.cbc;
153            icryptotransform ct;
154            memorystream ms;
155            cryptostream cs;
156            byte[] byt;
157            byte[] key = new byte[8]{56,50,55,56,56,55,49,49};
158            byte[] iv = new byte[8]{56,50,55,56,56,55,49,49};
159           
160            ct = des.createdecryptor(key, iv);
161            byt = convert.frombase64string(input); // 將 密文 以 base64 編碼轉換成 byte 數組
162
163            ms = new memorystream();
164            cs = new cryptostream(ms, ct, cryptostreammode.write);
165            cs.write(byt, 0, byt.length);
166            cs.flushfinalblock();
167
168            cs.close();
169
170            return encoding.getencoding("gb2312").getstring(ms.toarray()); // 將 明文 以 gb2312 編碼轉換成字符串
171        }
172       
173
174        /**//// <summary>
175        /// 3des 加密 byte[] to hex string
176        /// </summary>
177        /// <param name="input">明文字符串</param>
178        /// <returns>已加密字符串</returns>
179        public static string threedesencrypthex(string input)
180        {
181            string result = "";
182            system.security.cryptography.tripledes des = system.security.cryptography.tripledes.create();
183            des.mode = system.security.cryptography.ciphermode.cbc;
184            des.padding = system.security.cryptography.paddingmode.pkcs7;
185            icryptotransform ct;
186            memorystream ms;
187            cryptostream cs;
188            byte[] byt;
189            byte[] key = new byte[24]{
190                                         1,2,3,4,5,6,
191                                         1,2,3,4,5,6,
192                                         1,2,3,4,5,6,
193                                         1,2,3,4,5,6
194                                     };
195            byte[] iv = new byte[8]{1,2,3,4,5,6,1,2};
196
197            ct = des.createencryptor(key, iv);
198
199            byt = encoding.getencoding("gb2312").getbytes(input); //根據 gb2312 編碼對字符串處理,轉換成 byte 數組
200           
201            ms = new memorystream();
202            cs = new cryptostream(ms, ct, cryptostreammode.write);
203            cs.write(byt, 0, byt.length);
204            cs.flushfinalblock();
205
206            cs.close();
207
208            byte[] answer = ms.toarray();
209            for(int j=0;j<answer.length;j++)
210            {
211                result += answer[j].tostring("x").padleft(2,'0');
212            }
213            return result;
214        }
215
216        /**//// <summary>
217        /// 3des + hex to byte[] 解密
218        /// </summary>
219        /// <param name="input">密文字符串</param>
220        /// <returns>解密字符串</returns>
221        public static string threedesdecrypthex(string input)
222        {
223            system.security.cryptography.tripledes des = system.security.cryptography.tripledes.create();
224            des.mode = system.security.cryptography.ciphermode.cbc;
225            des.padding = system.security.cryptography.paddingmode.pkcs7;
226            icryptotransform ct;
227            memorystream ms;
228            cryptostream cs;
229            byte[] key = new byte[24]{
230                                         1,2,3,4,5,6,
231                                         1,2,3,4,5,6,
232                                         1,2,3,4,5,6,
233                                         1,2,3,4,5,6
234                                     };
235            byte[] iv = new byte[8]{1,2,3,4,5,6,1,2};
236           
237            ct = des.createdecryptor(key, iv);
238            //byt = convert.frombase64string(input); // 將 密文 以 hex to byte[]編碼轉換成 byte 數組
239            if(input.length<=1)
240            {
241                throw new exception("encrypted hex string is too short!");
242            }
243            byte[] byt = new byte[input.length/2];
244            for(int i=0;i<byt.length;i++)
245            {
246                //console.writeline(input.substring(i*2,2));
247                byt[i] = convert.tobyte(input.substring(i*2,2),16);
248            }
249
250            ms = new memorystream();
251            cs = new cryptostream(ms, ct, cryptostreammode.write);
252            cs.write(byt, 0, byt.length);
253            cs.flushfinalblock();
254
255            cs.close();
256
257            return encoding.getencoding("gb2312").getstring(ms.toarray()); // 將 明文 以 gb2312 編碼轉換成字符串
258        }
259        /**//// <summary>
260        /// base64解碼
261        /// </summary>
262        /// <param name="base64str"></param>
263        /// <returns></returns>
264        public static string decodingfrombase64(string base64str)
265        {
266            byte[] bytes = convert.frombase64string(base64str);
267            return system.text.encoding.utf8.getstring(bytes);
268        }
269        /**//// <summary>
270        /// base64編碼
271        /// </summary>
272        /// <param name="str"></param>
273        /// <returns></returns>
274        public static string encodingtobase64(string str)
275        {
276            return convert.tobase64string(encoding.utf8.getbytes(str));
277        }
278        /**//// <summary>
279        /// 根據指定的編碼方式base64解碼
280        /// </summary>
281        /// <param name="base64str"></param>
282        /// <param name="strencoding"></param>
283        /// <returns></returns>
284        public static string decodingfrombase64(string base64str,system.text.encoding strencoding)
285        {
286            byte[] bytes = convert.frombase64string(base64str);
287            return strencoding.getstring(bytes);
288        }
289        /**//// <summary>
290        /// 根據指定的編碼方式base64編碼
291        /// </summary>
292        /// <param name="str"></param>
293        /// <param name="strencoding"></param>
294        /// <returns></returns>
295        public static string encodingtobase64(string str,system.text.encoding strencoding)
296        {
297            return convert.tobase64string(strencoding.getbytes(str));
298        }
299    }
兩個常用的方法

 1    /**//// <summary>
 2        /// 通過字節數組形式的密鑰獲取字符串形式的密鑰
 3        /// </summary>
 4        void getstringbybytearray()
 5        {
 6            byte[] key = new byte[8]{56,50,55,56,56,55,49,49};
 7            response.write(system.text.encoding.default.getstring(key));
 8            response.end();
 9        }
10
11        /**//// <summary>
12        /// 通過字符串形式的密鑰獲取字節數組形式的密鑰
13        /// </summary>
14        void getbytearraybystring()
15        {
16            string key = "82788711";
17            response.write(system.text.encoding.default.getbytes(key));
18            response.end();
19           
20        }

有這里沒包括的,歡迎回復,大家一起總結一下~~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本色道久久综合狠狠躁篇的优点| 日韩av网站在线| 亚洲free嫩bbb| 亚洲国产欧美精品| 欧美日韩在线视频一区| 亚洲成色777777在线观看影院| 日韩天堂在线视频| 国产美女久久久| 成人黄色在线免费| 国产精品91久久久| 91免费在线视频网站| 国产99久久精品一区二区| 中文字幕不卡在线视频极品| www日韩欧美| 午夜剧场成人观在线视频免费观看| 精品久久久久久久久久久久| 国产日韩欧美自拍| 美女视频久久黄| 欧美大秀在线观看| 日韩在线观看视频免费| 日韩免费av在线| 国产成人一区二区三区电影| 欧美一区二粉嫩精品国产一线天| 91视频免费在线| 亚洲人a成www在线影院| 欧美一级成年大片在线观看| 亚洲va欧美va国产综合剧情| 国产日韩欧美一二三区| 亚洲午夜女主播在线直播| 亚洲男人天堂网站| 精品无人区乱码1区2区3区在线| 姬川优奈aav一区二区| 成人性生交大片免费看视频直播| 国内精品久久久久久中文字幕| 另类视频在线观看| 国产色婷婷国产综合在线理论片a| 国产成人av网址| 久久精品国产欧美亚洲人人爽| 国内精久久久久久久久久人| 成人xvideos免费视频| 岛国av一区二区在线在线观看| 精品国产乱码久久久久久虫虫漫画| 亚洲精品之草原avav久久| 日韩亚洲第一页| 欧美午夜影院在线视频| 亚洲国产天堂久久综合网| 国产精品九九九| 欧美乱妇高清无乱码| 久久综合伊人77777| 日本韩国欧美精品大片卡二| www.日韩不卡电影av| 播播国产欧美激情| 日韩久久精品电影| 国产91在线播放九色快色| 午夜精品久久17c| 久久久精品免费| 欧美疯狂性受xxxxx另类| 国产欧美精品一区二区三区介绍| 日韩精品在线私人| 成人在线视频网站| 日本人成精品视频在线| 欧美一级大片在线免费观看| 欧美一区二三区| 91沈先生在线观看| 中文字幕成人在线| 亚洲精品成a人在线观看| 亚洲影视九九影院在线观看| 国外日韩电影在线观看| 日韩视频免费在线观看| 日韩二区三区在线| 欧美成人全部免费| 国产精品久久久久91| 中文字幕在线看视频国产欧美在线看完整| 中文字幕欧美日韩| 日韩在线观看免费高清| 日韩天堂在线视频| 亚洲午夜未删减在线观看| 欧美精品久久久久久久久| 国产一区视频在线| 另类少妇人与禽zozz0性伦| 亚洲欧洲在线看| 亚洲国产精品大全| 欧美精品18videos性欧美| 91在线精品播放| 97香蕉久久夜色精品国产| 91最新国产视频| 成人亚洲欧美一区二区三区| 国产精品久久久久久久久久东京| 黑人极品videos精品欧美裸| 欧美激情精品久久久久久免费印度| 91精品国产综合久久久久久久久| 精品呦交小u女在线| 色黄久久久久久| 精品亚洲国产视频| 久久综合国产精品台湾中文娱乐网| 韩日精品中文字幕| 91av在线视频观看| 欧美猛男性生活免费| 日韩精品久久久久久久玫瑰园| 爽爽爽爽爽爽爽成人免费观看| 亚洲国产99精品国自产| 欧美精品久久久久a| 欧美性受xxxx白人性爽| 亚洲欧洲在线免费| 国产欧美日韩免费看aⅴ视频| 国产精品免费一区豆花| 日本精品免费观看| 成人网页在线免费观看| 欧美亚洲激情视频| 久久久久国产精品一区| 欧美日韩一区免费| 影音先锋欧美在线资源| 国产亚洲精品久久久久久牛牛| 日韩欧美中文字幕在线观看| 国产精品第2页| 91啪国产在线| 欧美孕妇孕交黑巨大网站| 国产中文字幕亚洲| 91精品视频网站| 精品色蜜蜜精品视频在线观看| 国产亚洲精品日韩| 夜夜嗨av一区二区三区免费区| 菠萝蜜影院一区二区免费| 91免费在线视频网站| 亚洲精品ady| 亚洲tv在线观看| 亚洲一区二区三区视频播放| 91av成人在线| 九九热这里只有精品免费看| 中文字幕一区日韩电影| 日韩欧美高清视频| 欧美尤物巨大精品爽| 91在线|亚洲| 成人久久一区二区| 国产精品99久久久久久www| 亚洲裸体xxxx| 中文字幕日韩欧美在线视频| 成人中文字幕+乱码+中文字幕| 国产97在线|日韩| 色婷婷亚洲mv天堂mv在影片| 欧美在线视频在线播放完整版免费观看| 国产成人久久久精品一区| 96精品久久久久中文字幕| 97精品国产97久久久久久免费| 欧美在线视频在线播放完整版免费观看| 日韩在线观看免费高清完整版| 亚洲国产精品女人久久久| www.欧美免费| 一本色道久久88亚洲综合88| 国产精品网址在线| 全球成人中文在线| 欧美日韩国产123| 成人免费午夜电影| 久久久精品网站| 色老头一区二区三区在线观看| 亚洲精品久久久久久久久| 久久久久久国产精品久久| 久久久久久国产精品| 国产欧美精品在线播放| 国产免费观看久久黄| 日韩成人av在线播放| 亚洲精品中文字幕有码专区| 久久精品视频亚洲| 最近的2019中文字幕免费一页|