.NET实现字符串base64编码

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

.NET实现字符串base64编码

时间: 2024-08-15 06:15:30

.NET实现字符串base64编码的相关文章

PHP安全的URL字符串base64编码和解码

这篇文章主要介绍了PHP安全的URL字符串base64编码和解码,在base64的基础上替换了不安全的一些字符,需要的朋友可以参考下 如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用URL地址.下面的方法可以解决该问题: URL安全的字符串编码: function urlsafe_b64encode($string) {    $data = base64_encode($string);    $data = str_replace(array

URL安全的字符串base64编码和解码

如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用URL地址.下面的方法可以解决该问题:URL安全的字符串编码: function urlsafe_b64encode($string) {    $data = base64_encode($string);    $data = str_replace(array('+','/','='),array('-','_',''),$data);    return $data; } URL安全的字符串

Base64编码 图片与base64编码互转

package com.education.util; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; /** * Created by jn-dinggao on 2016/2/4. */ public class Base64Util { // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 public static String GetImageStr(Stri

Base64编码字符串时数据量明显变大

那就是当把byte[]通过Convert.ToBase64String转换成Base64编码字符串时数据量明显变大 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需要编码的数据拆分成字节数组.以3个字节为一组.按顺序排列24位数据,再把这24位数据分成4组,即每组6位.再在每组的的最高位前补两个0凑足一个字节.这样就把一个3字节为一组的数据重新编码成了4个字节.当所要编码的数据的字节数不是3的整倍数,也就是说在分组时最后一组不够3个字节.这时在最后一组填充1到

使用EJS脚本将字符串转换成Base64编码

此博客为9925.org的镜像,登录9925.org可以查看到最新博文. 原文出处:http://ily.so/VVfyim 由于EJS脚本解释器是完美支持 ECMA-262 标准的,因此EJS脚本是JavaScript的真超集. 说了一段废话后,我其实是想说我在网上copy了一段JS支持的将字符串转换成Base64编码的代码,不知出处,这里斗胆将代码贴出,如有侵权请联系删除. var Base64 = {     // 转码表     table : [             'A', 'B

将字符串以 BASE64 编码 base64_encode() base64_decode()

base64_encode 将字符串以 BASE64 编码. 语法: string base64_encode(string data); 返回值: 字符串 函数种类: 编码处理   内容说明 本 函数将字符串以 MIME BASE64 编码.此编码方式可以让中文字或者图片也能在网络上顺利传输.在 BASE64 编码后的字符串只包含英文字母大小写.阿拉伯数字.加号与反斜线,共 64 个基本字符,不包含其它特殊的字符,因而才取名 BASE64.编码后的字符串比原来的字符串长度再加 1/3 左右.更

Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示

Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示 在 开发中遇到应用c#及asp.net的在的webservice 保存图片并以xml文件形式现实出来 并用delphi调用 的方法: 1.c#的webservice现实见 http://www.greensoftcode.net/techntxt/20127118441582992373 之前的文章. 2.在客户端用delphi显示 发现asp.net xml形式输出的图片是base64字符串形式.

图片和base64编码字符串 互相转换,图片和byte数组互相转换

图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; /** * @author lishupeng * @create 2017-05-06 下午 2:56 **/ public class Base64Test { public static void main(String[] args) { String strImg = GetImageSt

将图片转换为Base64编码的字符串

图片以文件的形式存在,可以在表单中使用. 也可以转换成Base64编码的字符串,从而在css.js中以字符串的形式使用图片.例如,在css中设置背景图片.在js中用ajax上传图片. <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width