1.1 原理介绍
(1)Base64是一种基于64个可打印字符来表示二进制数据的表示方法。其索引表如下:.

共包含64个可打印字符为:A-Z、a-z、0-9、+、/,另外还会有“=”或者“==”作为填充字符出现在编码中。
(2)编码规则
- 
	将待编码字符串每三个字节分为一组,每组24bit 
- 
	将上边的24bit分为4组,每组6bit 
- 
	在每组前添加两个0,每组由6bit变为8bit,总共32bit,即4byte 
- 
	根据Base64编码对照表获取对应的编码值 

上述图例中:“Man”经过Base64编码之后变为“TWFu”。
(3)字节数不足3个时

- 
	两个字节:2byte共16bit,按照编码规则,每6bit分为一组,则第三组缺少2bit,用0补齐,得到3个Based64编码,第四组完全没有数据则用“=”补上。因此上图“BC”经过Base64编码之后变为“QkM=”; 
- 
	一个字节:1byte共8bit,按照编码规则,每6bit分为一组,则第二组缺少4bit,用0补齐,得到2个Based64编码,后两组完全没有数据都用“=”补上。因此上图“A”经过Base64编码之后变为“QQ==”。 
1.2 C#代码
// Base64编码
public sealed class Base64
{
    // Base64加密
    public static string Base64Encrypt(string plaintext)
    {
        string ciphertext = "";
        byte[] buffer = Encoding.ASCII.GetBytes(plaintext);
        ciphertext = Convert.ToBase64String(buffer);
        return ciphertext;
    }
    // Base64解密
    public static string Base64Decrypt(string ciphertext)
    {
        string plaintext = "";
        byte[] buffer = Convert.FromBase64String(ciphertext);
        plaintext = Encoding.ASCII.GetString(buffer);
        return plaintext;
    }
} 
