阳光博文 你的空间 知识的容器

.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     

*/


在线咨询