using System; using System.IO; using System.Text; namespace AllBase { /// /// 实现Base64加密解密 /// 作者:周公 /// 时间:2007 /// public static class Base64Encode { /// /// Base64加密 /// /// 加密采用的编码方式 /// 待加密的明文 /// public static string EncodeBase64(Encoding encode, string source) { byte[] bytes = encode.GetBytes(source); try { string code = Convert.ToBase64String(bytes); return code; } catch { return source; } } /// /// Base64加密,采用utf8编码方式加密 /// /// 待加密的明文 /// 加密后的字符串 public static string EncodeBase64(string source) { return EncodeBase64(Encoding.UTF8, source); } /// /// Base64解密 /// /// 解密采用的编码方式,注意和加密时采用的方式一致 /// 待解密的密文 /// 解密后的字符串 public static string DecodeBase64(Encoding encode, string result) { string decode = ""; byte[] bytes = Convert.FromBase64String(result); try { decode = encode.GetString(bytes); } catch { decode = result; } return decode; } /// /// Base64解密,采用utf8编码方式解密 /// /// 待解密的密文 /// 解密后的字符串 public static string DecodeBase64(string result) { return DecodeBase64(Encoding.UTF8, result); } /// /// 文件转Base64编码 /// /// 文件全路径 /// public static string DocumentToBase64Str(string fileName) { FileStream filestream = new FileStream(fileName, FileMode.Open); byte[] bt = new byte[filestream.Length]; //调用read读取方法 filestream.Read(bt, 0, bt.Length); string base64Str = Convert.ToBase64String(bt); filestream.Close(); return base64Str; } /// /// Base64字符串转文件并保存 /// /// base64字符串 /// /// 保存的文件路径 /// 保存的文件名 /// 是否转换并保存成功 public static bool Base64StringToFile(string base64String, string fileFullPath, string fileName) { bool opResult = false; try { if (!Directory.Exists(fileFullPath)) { Directory.CreateDirectory(fileFullPath); } MemoryStream stream = new MemoryStream(Convert.FromBase64String(base64String)); FileStream fs = new FileStream(fileFullPath + "\\" + fileName, FileMode.OpenOrCreate, FileAccess.Write); byte[] b = stream.ToArray(); fs.Write(b, 0, b.Length); fs.Close(); opResult = true; } catch (Exception e) { } return opResult; } } }