.NET實現字串base64編碼

來源:互聯網
上載者:User

標籤:style   blog   color   使用   os   檔案   

using System; using System.Text; using System.IO; using System.Security; using System.Security.Cryptography;   namespace Tgnet.Base.Security {     /**//// <summary>     /// 有關Base64編碼演算法的相關操作     /// </summary>     /// <example>如下的樣本為對一個字串進行Base64編碼,並返回編碼後的字串:     /// <code>     ///        public string ToBase64(string str){     ///            return Security.Base64.EncodingString(str);     ///        }     /// </code>     /// </example>     public class Base64     {         /**//// <summary>         /// 將字串使用base64演算法加密         /// </summary>         /// <param name="SourceString">待加密的字串</param>         /// <param name="Ens">System.Text.Encoding 對象,如建立中文編碼集對象:         /// System.Text.Encoding.GetEncoding("gb2312")</param>         /// <returns>編碼後的文本字串</returns>         public static string EncodingString(string SourceString,System.Text.Encoding Ens)         {             return Convert.ToBase64String(Ens.GetBytes(SourceString));         }           /**//// <summary>         /// 使用預設的字碼頁將字串使用base64演算法加密         /// </summary>         /// <param name="SourceString">待加密的字串</param>         /// <returns>加密後的文本字串</returns>         public static string EncodingString(string SourceString)         {             return EncodingString(SourceString,System.Text.Encoding.Default);         }           /**//// <summary>         /// 從base64編碼的字串中還原字串,支援中文         /// </summary>         /// <param name="Base64String">Base64加密後的字串</param>         /// <param name="Ens">System.Text.Encoding對象,如建立中文編碼集對象:         /// System.Text.Encoding.Default</param>         /// <returns>還原後的文本字串</returns>         public static string DecodingString(string Base64String,System.Text.Encoding Ens)         {             return Ens.GetString((Convert.FromBase64String(Base64String)));         }           /**//// <summary>         ///使用預設的字碼頁從Base64編碼的字串中還原字串,支援中文         /// </summary>         /// <param name="Base64String">Base64加密後的字串</param>         /// <returns>還原後的文本字串</returns>         public static string DecodingString(string Base64String)         {              return DecodingString(Base64String,System.Text.Encoding.Default);         }           /**//// <summary>         /// 對一個檔案進行Base64編碼,並返回編碼後的字串         /// </summary>         /// <param name="strFileName">檔案的路徑和檔案名稱</param>         /// <returns>對檔案進行Base64編碼後的字串</returns>         public static string EncodingFileToString(string strFileName)         {             System.IO.FileStream fs=System.IO.File.OpenRead(strFileName);             System.IO.BinaryReader br=new System.IO.BinaryReader(fs);                       string Base64String=Convert.ToBase64String(br.ReadBytes((int)fs.Length));                       br.Close();             fs.Close();             return Base64String;         }             /**//// <summary>         /// 對一個檔案進行Base64編碼,並將編碼後的內容寫入到一個檔案         /// </summary>         /// <param name="strSourceFileName">要編碼的檔案地址,支援任何類型的檔案</param>         /// <param name="strSaveFileName">要寫入的檔案路徑</param>         /// <returns>如果寫入成功,則返回真</returns>         public static bool EncodingFileToFile(string strSourceFileName,string strSaveFileName)         {             string strBase64=EncodingFileToString(strSourceFileName);                       System.IO.StreamWriter fs=new System.IO.StreamWriter(strSaveFileName);             fs.Write(strBase64);             fs.Close();             return true;         }           /**//// <summary>         /// 將Base64編碼字串解碼並儲存到一個檔案中         /// </summary>         /// <param name="Base64String">經過Base64編碼後的字串</param>         /// <param name="strSaveFileName">要輸出的檔案路徑,如果檔案存在,將被重寫</param>         /// <returns>如果操作成功,則返回True</returns>         public static bool DecodingFileFromString(string Base64String,string strSaveFileName)         {             System.IO.FileStream fs=new System.IO.FileStream(strSaveFileName,System.IO.FileMode.Create);             System.IO.BinaryWriter bw=new System.IO.BinaryWriter(fs);             bw.Write(Convert.FromBase64String(Base64String));             //bw.Write(Convert.ToBase64String)             bw.Close();             fs.Close();             return true;         }           /**//// <summary>         /// 將一個由Base64編碼產生的檔案解碼並儲存到一個檔案         /// </summary>         /// <param name="strBase64FileName">以Base64編碼格式儲存的檔案</param>         /// <param name="strSaveFileName">要輸出的檔案路徑,如果檔案存在,將被重寫</param>         /// <returns>如果操作成功,則返回True</returns>         public static bool DecodingFileFromFile(string strBase64FileName,string strSaveFileName)         {             System.IO.StreamReader fs=new System.IO.StreamReader(strBase64FileName,System.Text.Encoding.ASCII);             char[] base64CharArray=new char[fs.BaseStream.Length];             fs.Read(base64CharArray,0,(int)fs.BaseStream.Length);             string Base64String=new string(base64CharArray);             fs.Close();             return DecodingFileFromString(Base64String,strSaveFileName);         }           /**//// <summary>         /// 從網路地址一取得檔案並轉化為base64編碼         /// </summary>         /// <param name="strURL">檔案的URL地址,必須是絕對URL地址</param>         /// <param name="objWebClient">System.Net.WebClient 對象</param>         /// <returns>返回經過Base64編碼的Web資源字串</returns>         public static string EncodingWebFile(string strURL,System.Net.WebClient objWebClient)         {             return Convert.ToBase64String(objWebClient.DownloadData(strURL));         }           /**//// <summary>         /// 從網路地址一取得檔案並轉化為base64編碼         /// </summary>         /// <param name="strURL">檔案的URL地址,必須是絕對URL地址</param>         /// <returns>返回經過Base64編碼的Web資源字串</returns>         public static string EncodingWebFile(string strURL)         {             return EncodingWebFile(strURL,new System.Net.WebClient());         }     } } 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.