.NET中进行Base64加密解密
方法一:
/// <summary> /// Base64加密 /// </summary> /// <param name="Message"></param> /// <returns></returns> public string Base64Code(string Message) { byte[] bytes = Encoding.Default.GetBytes(Message); return Convert.ToBase64String(bytes); } /// <summary> /// Base64解密 /// </summary> /// <param name="Message"></param> /// <returns></returns> public string Base64Decode(string Message) { byte[] bytes = Convert.FromBase64String(Message); return Encoding.Default.GetString(bytes); }
方法二:
//---------------------------------------------------------------------------- //项目名称 公共函数 //程序功能 Base64 编码及解码 //备注说明 code_type = "utf-8" 65001 // "utf-7" 65000 // "big5" 950 // "gb2312" 936 //---------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Text; using System.Web; public class CodeBase64 { private int _codepage = 65001; // 默认使用 utf-8 private string _en_code_base64 = ""; // 要解码的数据 private string _de_code_base64 = ""; // 要编码的数据 // 设置字码页 public int CodePage { set { this._codepage = value; } get { return _codepage; } } // 取得编码的数据 private string EnBase64Code { set { this._en_code_base64 = value; } get { return EnCodeBase64(_codepage, _de_code_base64); } } // 取得解码的数据 private string DeBase64Code { set { this._de_code_base64 = value; } get { return DeCodeBase64(_codepage, _en_code_base64); } } // Base64 编码 /// <summary> /// 对字符串进行Base64编码 /// </summary> /// <param name="codepage">代码页,utf-8:65001,gb2132:936</param> /// <param name="decode">需要加密的字符串</param> /// <returns></returns> public string EnCodeBase64(int codepage, string decode) { string encode = ""; try { byte[] bytes = Encoding.GetEncoding(codepage).GetBytes(decode); encode = Convert.ToBase64String(bytes); } catch { encode = ""; } return encode; } // Base64 解码 /// <summary> /// 对Base64编码的字符串进行解码 /// </summary> /// <param name="codepage">代码页,utf-8:65001,gb2132:936</param> /// <param name="encode">需要解码的字符串</param> /// <returns></returns> public string DeCodeBase64(int codepage, string encode) { string decode = ""; try { byte[] bytes = Convert.FromBase64String(encode); decode = Encoding.GetEncoding(codepage).GetString(bytes); } catch { decode = encode; } return decode; } // 输入 CodePage 名称,取得 CodePage 代码 // 若返回值为 -1 表示找不到 public int GetCodePage(string page_name) { int code_page = -1; page_name = page_name.ToLower(); foreach (EncodingInfo einfo in Encoding.GetEncodings()) { Encoding ecode = einfo.GetEncoding(); if (page_name == einfo.Name.ToLower()) { code_page = ecode.CodePage; break; } } return code_page; } // 输入 CodePage 代码,取得 CodePage 名称 // 若返回值为 空白字符串 表示找不到 public string GetPageName(int code_page) { string page_name = ""; foreach (EncodingInfo einfo in Encoding.GetEncodings()) { Encoding ecode = einfo.GetEncoding(); if (code_page == ecode.CodePage) { page_name = einfo.Name; break; } } return page_name; } } // This code produces the following output. /* CodePage identifier and name BrDisp BrSave MNDisp MNSave 1-Byte ReadOnly 37 IBM037 False False False False True True 437 IBM437 False False False False True True 500 IBM500 False False False False True True 708 ASMO-708 True True False False True True 720 DOS-720 True True False False True True 737 ibm737 False False False False True True 775 ibm775 False False False False True True 850 ibm850 False False False False True True 852 ibm852 True True False False True True 855 IBM855 False False False False True True 857 ibm857 False False False False True True 858 IBM00858 False False False False True True 860 IBM860 False False False False True True 861 ibm861 False False False False True True 862 DOS-862 True True False False True True 863 IBM863 False False False False True True 864 IBM864 False False False False True True 865 IBM865 False False False False True True 866 cp866 True True False False True True 869 ibm869 False False False False True True 870 IBM870 False False False False True True 874 windows-874 True True True True True True 875 cp875 False False False False True True 932 shift_jis True True True True False True 936 gb2312 True True True True False True 949 ks_c_5601-1987 True True True True False True 950 big5 True True True True False True 1026 IBM1026 False False False False True True 1047 IBM01047 False False False False True True 1140 IBM01140 False False False False True True 1141 IBM01141 False False False False True True 1142 IBM01142 False False False False True True 1143 IBM01143 False False False False True True 1144 IBM01144 False False False False True True 1145 IBM01145 False False False False True True 1146 IBM01146 False False False False True True 1147 IBM01147 False False False False True True 1148 IBM01148 False False False False True True 1149 IBM01149 False False False False True True 1200 utf-16 False True False False False True 1201 unicodeFFFE False False False False False True 1250 windows-1250 True True True True True True 1251 windows-1251 True True True True True True 1252 Windows-1252 True True True True True True 1253 windows-1253 True True True True True True 1254 windows-1254 True True True True True True 1255 windows-1255 True True True True True True 1256 windows-1256 True True True True True True 1257 windows-1257 True True True True True True 1258 windows-1258 True True True True True True 1361 Johab False False False False False True 10000 macintosh False False False False True True 10001 x-mac-japanese False False False False False True 10002 x-mac-chinesetrad False False False False False True 10003 x-mac-korean False False False False False True 10004 x-mac-arabic False False False False True True 10005 x-mac-hebrew False False False False True True 10006 x-mac-greek False False False False True True 10007 x-mac-cyrillic False False False False True True 10008 x-mac-chinesesimp False False False False False True 10010 x-mac-romanian False False False False True True 10017 x-mac-ukrainian False False False False True True 10021 x-mac-thai False False False False True True 10029 x-mac-ce False False False False True True 10079 x-mac-icelandic False False False False True True 10081 x-mac-turkish False False False False True True 10082 x-mac-croatian False False False False True True 20000 x-Chinese-CNS False False False False False True 20001 x-cp20001 False False False False False True 20002 x-Chinese-Eten False False False False False True 20003 x-cp20003 False False False False False True 20004 x-cp20004 False False False False False True 20005 x-cp20005 False False False False False True 20105 x-IA5 False False False False True True 20106 x-IA5-German False False False False True True 20107 x-IA5-Swedish False False False False True True 20108 x-IA5-Norwegian False False False False True True 20127 us-ascii False False True True True True 20261 x-cp20261 False False False False False True 20269 x-cp20269 False False False False True True 20273 IBM273 False False False False True True 20277 IBM277 False False False False True True 20278 IBM278 False False False False True True 20280 IBM280 False False False False True True 20284 IBM284 False False False False True True 20285 IBM285 False False False False True True 20290 IBM290 False False False False True True 20297 IBM297 False False False False True True 20420 IBM420 False False False False True True 20423 IBM423 False False False False True True 20424 IBM424 False False False False True True 20833 x-EBCDIC-KoreanExtended False False False False True True 20838 IBM-Thai False False False False True True 20866 koi8-r True True True True True True 20871 IBM871 False False False False True True 20880 IBM880 False False False False True True 20905 IBM905 False False False False True True 20924 IBM00924 False False False False True True 20932 EUC-JP False False False False False True 20936 x-cp20936 False False False False False True 20949 x-cp20949 False False False False False True 21025 cp1025 False False False False True True 21866 koi8-u True True True True True True 28591 iso-8859-1 True True True True True True 28592 iso-8859-2 True True True True True True 28593 iso-8859-3 False False True True True True 28594 iso-8859-4 True True True True True True 28595 iso-8859-5 True True True True True True 28596 iso-8859-6 True True True True True True 28597 iso-8859-7 True True True True True True 28598 iso-8859-8 True True False False True True 28599 iso-8859-9 True True True True True True 28603 iso-8859-13 False False False False True True 28605 iso-8859-15 False True True True True True 29001 x-Europa False False False False True True 38598 iso-8859-8-i True True True True True True 50220 iso-2022-jp False False True True False True 50221 csISO2022JP False True True True False True 50222 iso-2022-jp False False False False False True 50225 iso-2022-kr False False True False False True 50227 x-cp50227 False False False False False True 51932 euc-jp True True True True False True 51936 EUC-CN False False False False False True 51949 euc-kr False False True True False True 52936 hz-gb-2312 True True True True False True 54936 GB18030 True True True True False True 57002 x-iscii-de False False False False False True 57003 x-iscii-be False False False False False True 57004 x-iscii-ta False False False False False True 57005 x-iscii-te False False False False False True 57006 x-iscii-as False False False False False True 57007 x-iscii-or False False False False False True 57008 x-iscii-ka False False False False False True 57009 x-iscii-ma False False False False False True 57010 x-iscii-gu False False False False False True 57011 x-iscii-pa False False False False False True 65000 utf-7 False False True True False True 65001 utf-8 True True True True False True 65005 utf-32 False False False False False True 65006 utf-32BE False False False False False True */