.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,,(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编码的更多相关文章
- 图片与字符串(base64编码)的转化
package com.demo; import java.util.*; import java.io.*; import sun.misc.BASE64Decoder; import sun.mi ...
- C++ Base64 编码 解码
C++实现 base64 字符串编码解码(GCC编译). /** * @brief C++ base64 编解码 * @author wid * @date 2013-20-25 * * @note ...
- Base64编码 图片与base64编码互转
package com.education.util; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import jav ...
- BASE64编码乱码问题的浅层分析与解释
本文由作者朱臻授权网易云社区发布. 1问题案例 曾在开发过程中,我们遇到了BASE64编码乱码的问题,该问题的场景如下: 当web前端,将带有中文字符的字符串base64编码后,传到后端.当后端将数据 ...
- 将图片转换为Base64编码的字符串
图片以文件的形式存在,可以在表单中使用. 也可以转换成Base64编码的字符串,从而在css.js中以字符串的形式使用图片.例如,在css中设置背景图片.在js中用ajax上传图片. <!DOC ...
- C# 在网页中将Base64编码的字符串显示成图片
在写一个接口,返回的json里面有图片,是Base64编码的字符串. 测试接口的时候,发现原来在html显示,是直接可以将Base64编码的字符串显示成图片的. 格式如下: <img src=d ...
- NET MVC全局异常处理(一) 【转载】网站遭遇DDoS攻击怎么办 使用 HttpRequester 更方便的发起 HTTP 请求 C#文件流。 Url的Base64编码以及解码 C#计算字符串长度,汉字算两个字符 2019周笔记(2.18-2.23) Mysql语句中当前时间不能直接使用C#中的Date.Now传输 Mysql中Count函数的正确使用
NET MVC全局异常处理(一) 目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关 ...
- 将图片文件转化为字节数组字符串,并对其进行Base64编码处理,以及对字节数组字符串进行Base64解码并生成图片
实际开发中涉及图片上传并且量比较大的时候一般处理方式有三种 1.直接保存到项目中 最老土直接方法,也是最不适用的方法,量大对后期部署很不方便 2.直接保存到指定路径的服务器上.需要时候在获取,这种方式 ...
- Atitit.字节数组转字符串 base64 base16 Quoted-printable 编码原理设计 attilax 总结
Atitit.字节数组转字符串 base64 base16 Quoted-printable 编码原理设计 attilax 总结 1. Base64编码, 1 2. Base64实现转换原理1 3. ...
随机推荐
- android -------- 颜色的半透明效果配置
最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AA ...
- js中const、let、var的区别
今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章.主要内容是:js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. 1 ...
- MySQL 8.0窗口函数
团队介绍 网易乐得DBA组,负责网易乐得电商.网易邮箱.网易技术部数据库日常运维,负责数据库私有云平台的开发和维护,负责数据库及数据库中间件Cetus的开发和测试等等. 一.窗口函数的使用场景 作为I ...
- php 字符编码转换
<?php/** * Created by PhpStorm. * User: yxp * Date: 2016/11/8 * Time: 16:47 */ /** * 将非GBK字符集的编码转 ...
- Python错误调试-raise、assert
raise: raise语句手工引发一个异常:,这样做程序不会因异常而终止,而是运行报错 1 "raise" [expression ["," expressi ...
- 一、JDBC
一.CRUD(增删改查) C:增加Create R查询(Retrieve) U更新(Update) D删除(Delete) 在JDBC中,增加,删除,修改,操作都基本一样,只是传递不同SQL语句,最后 ...
- FJUT16级第一周寒假作业题解I题
涨姿势题3 TimeLimit:1000ms MemoryLimit:128000KB 64-bit integer IO format:%lld Problem Description 涨姿势题就 ...
- iOS架构设计系列之解耦的尝试之变异的MVVM
最近一段时间,在思考如何合理的架构一个可扩展性良好的界面编程方式.这一部分的成果做成了一个叫ElementKit的库.目前功能在不断的完善中. 关于iOS的架构,看多了MVVM,VIPER,MVC,M ...
- 套接字编程,创建套接字socket
1.套接字地址结构: struct sockaddr { sa_family_t sa_family; char sa_data[14]; }; 其中,成员sa_family表示套接字的协议族类型,对 ...
- 快速搭建springboot框架以及整合ssm+shiro+安装Rabbitmq和Erlang、Mysql下载与配置
1.快速搭建springboot框架(在idea中): file–>new project–>Spring Initializr–>next–>然后一直下一步. 然后复制一下代 ...