using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; namespace CCS.Utility.Security { public static class Base64Helper { #region Base64加密解密 /// /// Base64加密,采用指定字符编码方式加密。 /// /// 待加密的明文 /// 字符编码 /// public static string Base64Encrypt(this string input, Encoding encode) { return Convert.ToBase64String(encode.GetBytes(input)); } /// /// Base64加密,采用UTF8编码方式加密。 /// /// 待加密的明文 /// public static string Base64Encrypt(this string input) { return Base64Encrypt(input, new UTF8Encoding()); } /// /// Base64解密,采用UTF8编码方式解密。 /// /// 待解密的秘文 /// public static string Base64Decrypt(this string input) { return Base64Decrypt(input, new UTF8Encoding()); } /// /// Base64解密,采用指定字符编码方式解密。 /// /// 待解密的秘文 /// 字符的编码 /// public static string Base64Decrypt(this string input, Encoding encode) { return encode.GetString(Convert.FromBase64String(input)); } #endregion /// /// 文件转base64字符串 /// /// /// public static string FileToBase64(string filePath) { try { string base64Str; using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { byte[] bt = new byte[fileStream.Length]; // 调用read读取方法  fileStream.Read(bt, 0, bt.Length); base64Str = Convert.ToBase64String(bt); } return base64Str; } catch { return ""; } } /// /// base64字符串转文件字节数组 /// /// /// public static byte[] FileFromBase64(string base64) { return Convert.FromBase64String(base64); } /// /// 将传进来的文件转换成字符串 /// /// 待处理的文件路径(本地或服务器) /// public static string FileToBinary(string filePath) { //利用新传来的路径实例化一个FileStream对像 System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read); //得到对象的大小 int fileLength = Convert.ToInt32(fs.Length); //声明一个byte数组 byte[] fileByteArray = new byte[fileLength]; //声明一个读取二进流的BinaryReader对像 System.IO.BinaryReader br = new System.IO.BinaryReader(fs); for (int i = 0; i < fileLength; i++) { //将数据读取出来放在数组中 br.Read(fileByteArray, 0, fileLength); } //装数组转换为String字符串 string strData = Convert.ToBase64String(fileByteArray); br.Close(); fs.Close(); return strData; } /// /// 将传进来的字符串保存为文件 /// /// 需要保存的位置路径 /// 需要转换的字符串 public static void BinaryToFile(string path, string binary) { System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Create, System.IO.FileAccess.Write); //利用新传来的路径实例化一个FileStream对像 System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs); //实例化一个用于写的BinaryWriter byte[] buffer = Convert.FromBase64String(binary); bw.Write(buffer); bw.Close(); fs.Close(); } } }