之前的一个关于Base64编码的适用于VB6.0,如果要在.Net里面使用Base64编码,.Net类库已经封装好了算法,改进一下即可。下面是详细的例子。

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());
        }

    }
}

转载于:https://www.cnblogs.com/aljcn/archive/2007/07/06/DotNetBase64Codeing.html

.Net下采用Base64编码的一个封装好的类库相关推荐

  1. Delphi 下的Base64编码和解码

    function Base64Encode(s : string) : string; //base64 编码 var base64 : TIdEncoderMIME;tmpBytes : TByte ...

  2. 奇妙的Base64编码

    各位看官应该都是资深的网虫了,小弟斗胆在此问问大家,平时上网时,除了泡MM.到论坛灌水.扔版砖--之外,进行的最多的是什么活动?对了,你一定会说:是收发电子邮件!(谁敢说自己没收/发过电子邮件的?拉出 ...

  3. 编解码:Base64编码在URL中的应用

    项目查询背景:目前项目中,本地文件全部使用UTF-8进行编码,Android网络访问全部采用Base64加密传输,因此考虑Base64和Url编码是否会有冲突,查询的结果是没有冲突,可以直接放在Url ...

  4. mysql 图片base64_关于图片的Base64编码

    什么是Base64编码 Base64编码是一种图片处理格式,通过特定的算法将图片编码成一长串字符串,在页面上显示的时候,可以用该字符串来代替图片的url属性. base64编码就是长得像下面这样子的代 ...

  5. Android图片的Base64编码与解码

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法. Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较 ...

  6. [转载] python程序所需的图片通过base64编码成字符串放在代码中

    参考链接: 在Python中编码和解码Base64字符串 问题背景 python代码打包成exe可执行文件.问题是这个python程序执行时需要显示一张图片,这就意味着打包成exe后,也需要在exe同 ...

  7. des加密+base64编码,base64解码+des解密

    des加密+base64编码,base64解码+des解密 des简单介绍 base64简单介绍 运行效果图 TestActivity.java DataEncryptionUtil.java des ...

  8. Base64编码和Python解码

    base64是网络上最常见的用于传输8Bit字节码的编码方式之一,是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息. 采用Base64编码具有不可读性,需要解码后才能阅读. 本文是关于 ...

  9. 密码学-编码算法:Base64编码原理和使用

    1.Base64简介 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.Base64编码是从二进制到字符的过程,可用于在 ...

  10. Base64编码相关知识总结

    Base64编码是什么? Base64,顾名思义,就是包括小写字母a-z.大写字母A-Z.数字0-9.符号"+"."/"一共64个字符的字符集,(另加一个&qu ...

最新文章

  1. 对于FAMNIST中的十种动物和水果进行识别测试
  2. windows 8 及vs2012 下载
  3. 邮箱有什么用_大公司为什么要用企业邮箱?大公司企业邮箱用什么比较好?
  4. Visual Studio Code的Issue列表被黑产“攻陷”
  5. 【Geek软技能】程序员,为什么写不好一份简历?
  6. UI5 repository mapping and Component-preload.js UI5RepositoryPathMapping.xml
  7. ASP.NET2.0学习8--WebPart部件
  8. matlab打开笔记本摄像头_如何解决笔记本电脑摄像头异常问题
  9. 技术问答集锦(17)JVM垃圾回收
  10. Spark cluster 部署
  11. 【微软2014实习生及秋令营技术类职位在线測试】题目2 : K-th string
  12. ANSYS Workbench流-热-固多场耦合计算方法详解
  13. linux 远程连接工具
  14. Webstorm中文乱码的问题
  15. jtopo 实现一键布局
  16. 解决python写入文件数据不全的问题
  17. PDF如何旋转页面?这样旋转就好了
  18. 英国脱欧要拍电视剧了,卷福将是男主角
  19. 计算机学院 储昭坤,关于2016-2017学年先进个人、集体初评结果的公示
  20. WIN7 iTunes无法识别iPhone,重装系统解决

热门文章

  1. Hbase compact入门
  2. Linux上将二进制文件转化为c语言数组
  3. Visual Studio2013配置安装Opencv2.4.9详细过程
  4. Redash本地开发环境搭建
  5. 雷蛇在天猫618大爆发,雷军第二天就找其创始人取经
  6. JVM飙高排查脚本-结构分析
  7. js for ubuntu
  8. EMC NetWorker简单管理指南(二)
  9. LongAdder源码分析
  10. oracle 回收站