C#字符串Base64编解码
C#字符串Base64编解码
首先讲一下什么是Base64编码
所谓Base64就是一种基于64个可打印字符来表示二进制数据的方法。
Base64编码是从二进制到字符的过程,常用于在网络上传输不可见字符(不能被打印出来的字符)。
标准的Base64编码包含字符有:大小写英文字母(共52个),数字(共10个),+和/(2个)一共64个基础字符,所以就称作 Base64 编码。
正则表达式匹配:[A-Za-z0-9+/]
主要应用场合:
电子邮件的附件一般是 base64 编码,因为附件往往有不可见字符。
较老的纯文本协议 SMTP ,这些文本偶尔传输一个文件时,需要用 base64将二进制编码为可打印字符。
xml 中如果嵌入另外一个 xml 文件,直接嵌入,往往 xml 标签就乱套了, 不容易解析,因此,需要把内嵌的 XML 格式内容先进行 Base64 编码后在存储在 XML 文件中。
网页中的一些小图片,可以直接以 base64 编码的方式嵌入,不用再链接请求消耗网络资源。
以下用C#封装了两个string扩展方法,支持将文本编码为Base64和从Base64解码返回原字符串。
using System;
using System.Text;
namespace CRApp
{
public static class Base64
{
public static string Base64Encode(this string text) // 将字符串编码为 Base64
{
return (Convert.ToBase64String(Encoding.Default.GetBytes(text)));
}
public static string Base64_Decode(this string code) // 将 Base64 解码还原字符串
{
return (Encoding.Default.GetString(Convert.FromBase64String(code)));
}
}
}
C#字符串Base64编解码的更多相关文章
- C++,Base64编解码字符串或文件
参考链接:在C语言中使用libb64进行Base64编解码 GitHub地址:https://github.com/BuYishi/cpp_base64_demo base64_demo.cpp #i ...
- Delphi Base64 编解码函数
Delphi 自带 Base64 编解码的单元, EncdDecd这个单元提供两套四个公开函数: 对流的编解码:procedure EncodeStream(Input, Output: TStrea ...
- ios Base64编解码工具类及使用
为了避免明码传递http内容,可以用base64编码后传输,收到方再解码,也方便了2进制数据的字符串式传输. 对于ios来说,google给提供了一个很好的工具类,方便进行base64编解码,当然也可 ...
- Java实现BASE64编解码
Java实现BASE64编解码 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs BASE64和其它类似的编码算法通经常使用于转换二进制数据为文本数据,其目 ...
- Delphi 自带的 Base64 编解码函数
今天帮别人解决一个关于 Base64 编解码的问题,竟然发现 Delphi 自带了 Base64 编解码的单元,叫 EncdDecd,这名字很拗口而且不直观,估计这是一直很少人关注和知道的原因. 这个 ...
- 【VBA研究】如何用Base64 编解码方法实现简单的加解密
Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码,将数据变成字符串实现文本传输.由于编码简单,所以很容易实现,代码也是现成的.利用这个编码规则可以实现简单的加解密.编解码方 ...
- OpenSSL aes加解密实例+base64编解码
OpenSSL aes加解密简单实例+base64编解码 #include <stdio.h> #include <string.h> #include <memory. ...
- python3的base64编解码
使用python3的base64编解码实现字符串的简易加密解密 引言: 在一些项目中,接口的报文是通过base64加密传输的,所以在进行接口自动化时,需要对所传的参数进行base64编码,对拿到的响应 ...
- base64编解码的两个函数
base64编解码的两个函数,声明,参考网络上的代码实现. unsigned char *base64_encode(unsigned char *str, long* lpBufLen) { lon ...
随机推荐
- centos 内存使用情况+负载使用情况
内存使用情况,查看内存 free -h #查看内存 available: 可用内存 buff/cache: 缓存内存 free: 空闲内存 used: 已使用内存 负载使用情况 cat /p ...
- rockchip-rk3399 RGA的使用
RGA的使用 RGA即二维图像辅助计算单元,该单元可以在极短时间内拷贝.旋转.格式转换.缩放.混合图片. rk官方RGA库链接:https://github.com/rockchip-linux/li ...
- day 19 C语言顺序结构基础2
(1).算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行步骤,以下说法正确的是[A] (A).先执行a+b的r1,再执行(d+e)的r2,再执行c*r2的r3,最后执 ...
- Javascript中字符串常用方法
JavaScript字符串常用方法 (1)获取相应位置的字符(charAt()) var str="你好,小小鸟!" var s=str.charAt(1) //获取到索引为1的字 ...
- CVE-2021-44228——Log4j2-RCE漏洞复现
0x00 漏洞介绍 Apache Log4j2是一个Java的日志组件,在特定的版本中由于其启用了lookup功能,从而导致产生远程代码执行漏洞. 影响版本:Apache Log4j2 2.0-bet ...
- 小程序循环时的item问题
平常在做小程序时,比如循环渲染数据时,如果有多个数据层次,一般都会这样 wx:for-item=item2,它的意思只是简单的起了一个wx:for循环值的别名,不是表示循环item2,index2同理 ...
- POXSIX之信号量
#include<stdio.h> #include<semaphore.h> #include<fcntl.h> #include<stdlib.h> ...
- C++11之future(二)
如果有两个线程,其中一个线程想要获取另一个线程的返回值,该怎么办? 于是接下来要谈的package_task就是为了解决这个问题而诞生的. // ConsoleApplication5.cpp : 定 ...
- gin访问和使用数据库
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysq ...
- gin框架中的会话控制
Cookie介绍 Http协议是无状态的,服务器不能记录浏览器的访问状态,也就是说服务器不能判断请求的客户端是否已经登录 Cookie就是解决http协议无状态的方案之一 Cookie实际上就是服务器 ...