C#Base64编码
原文链接:http://www.cnblogs.com/caoyc/p/5794727.html
一. Base64的编码规则
Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24 位数据,再把这24位数据分成4组,即每组6位。再在每组的的最高位前补两个0凑足一个字节。这样就把一个3字节为一组的数据重新编码成了4个字节。当所要编码的数据的字节数不是3的整倍数,也就是说在分组时最后一组不够3个字节。这时在最后一组填充1到2个0字节。并在最后编码完成后在结尾添加1到2个 “=”。
例:将对ABC进行BASE64编码:
1、首先取ABC对应的ASCII码值。A(65)B(66)C(67);
2、再取二进制值A(01000001)B(01000010)C(01000011);
3、然后把这三个字节的二进制码接起来(010000010100001001000011);
4、 再以6位为单位分成4个数据块,并在最高位填充两个0后形成4个字节的编码后的值,(00010000)(00010100)(00001001)(00000011),其中蓝色部分为真实数据;
5、再把这四个字节数据转化成10进制数得(16)(20)(9)(3);
6、最后根据BASE64给出的64个基本字符表,查出对应的ASCII码字符(Q)(U)(J)(D),这里的值实际就是数据在字符表中的索引。
注:BASE64字符表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
二.解码规则
解码过程就是把4个字节再还原成3个字节再根据不同的数据形式把字节数组重新整理成数据。
三. C#中的实现
编码:
string str = Convert.ToBase64String(bytes);
解码:
string orgStr = Encoding.Default.GetString(outputb);
C#图片的Base64编码和解码
图片的Base64编码:
System.Drawing.Bitmap bp = new System.Drawing.Bitmap(@“c:\demo.GIF”);
bp.Save(m, System.Drawing.Imaging.ImageFormat.Gif);
byte []b = m.GetBuffer();
string base64string = Convert.ToBase64String(b);
Base64字符串解码:
System.IO.MemoryStream stream = new System.IO.MemoryStream(bt);
Bitmap bitmap = new Bitmap(stream);
pictureBox1.Image = bitmap;
C#Base64编码相关推荐
- Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式
Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...
- Java中BASE64 编码
2019独角兽企业重金招聘Python工程师标准>>> BASE64 编码是一种常用的字符编码,在很多地方都会用到.JDK 中提供了非常方便的 BASE64Encoder 和 BAS ...
- js php base64,JavaScript实现Base64编码与解码的代码详解
本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...
- js base64 编码解码
js base64 编码解码 encode decode,可以直接使用 function Base64() {// private property_keyStr = "ABCDEFGHIJ ...
- python使用base64编码解码数据
python使用base64编码解码数据 base64模块是用来作base64编码解码,常用于小型数据的传输.编码后的数据是一个字符串,其包括a-z.A-Z.0-9./.+共64个字符,即可用6个字节 ...
- 将base64编码图片上传到七牛云
将base64编码图片上传到七牛云 接口说明 FAQ >对象存储 >上传下载> 如何上传base64编码图片到七牛云 在七牛云FAQ上有一篇文章,讲解的接口的使用 https://d ...
- php和js中,utf-8编码转成base64编码
1.php下转化base64编码 php中,文本文件的编码决定了程序变量的编码,比如以下代码在不同编码的php文件中,展示的效果也是不一样的 <?php$word = '严';echo base ...
- android Java BASE64编码和解码一:基础
今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输. 类似这样的: {"name":"jike&q ...
- .Net Base64编码
using System; using System.Text; using System.IO; using System.Security; using System.Security.Crypt ...
- Base64编码的字符串与图片的互转
用Flex写了一个例子,图片(暂时仅支持png.jpg/jpeg)转成base64编码的字符串(默认取上传文件的后缀名,然后添加了"data:image/(png|gif|jpg|jpeg) ...
最新文章
- WebSphere MQ 自动启动发送方通道
- word自带公式编辑_怎样在word2013中快速插入数学公式
- python基础题面试_python常见面试题
- jquery 简单分页插件jQuerypage
- flutter 国际化_从0开始设计Flutter独立APP | 第二篇: 完整的国际化语言支持
- java不用插件播放媒体文件_java servlet不用插件上传文件:
- firstchild.data与childNodes[0].nodeValue意思
- Token实现单点登陆
- hdu 1575 Tr A (二分矩阵)
- asp.net页面去调用通过SSL加密的webservice报错
- 日志管理工具 journalctl用法
- 国内最强Web3D软件WebMax正式版发布
- etal斜体吗 参考文献_论文参考文献格式要求
- JS代码获取当前项目名称
- 北大2021年计算机分数分数线,北京大学2021年考研复试基本分数线已发布
- 拉格朗日插值法 【python】
- python爬虫之 爬取案例网页ajax请求的数据
- SpringBoot+Shiro+JWT+Mybatis-Plus搭建admin-shiro管理系统
- 数学建模——多元统计分析例题及程序
- LCD1602液晶显示模块学习笔记
热门文章
- python用变量的值声明新的变量
- Opencv(C++)笔记--模板匹配cv::matchTemplate()和最值计算cv::minMaxLoc()
- springCloud面试之feign+ribbon+hystirx交互概览
- 2068 Problem M	鸡兔同笼
- 经典问题 小白鼠试毒药 这个算法你绝对不知道
- IMU:姿态解算算法集合
- SQL查询语句、联合查询
- uniapp适配pc_uni-app支持PC版!
- centos7配置端口转发
- 电容在微分、积分电路中的本质以及应用