原文链接: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#中的实现

编码:

byte [] bytes  =  Encoding.Default.GetBytes( "要转换的字符 " );
string  str  =  Convert.ToBase64String(bytes);

解码:

byte [] outputb  =  Convert.FromBase64String(str);
string  orgStr  =  Encoding.Default.GetString(outputb);

C#图片的Base64编码和解码 

图片的Base64编码:

System.IO.MemoryStream m  =   new  System.IO.MemoryStream();
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字符串解码:

byte [] bt  =  Convert.FromBase64String(base64string);
System.IO.MemoryStream stream  =   new  System.IO.MemoryStream(bt);
Bitmap bitmap  =   new  Bitmap(stream);
pictureBox1.Image  =  bitmap;

C#Base64编码相关推荐

  1. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  2. Java中BASE64 编码

    2019独角兽企业重金招聘Python工程师标准>>> BASE64 编码是一种常用的字符编码,在很多地方都会用到.JDK 中提供了非常方便的 BASE64Encoder 和 BAS ...

  3. js php base64,JavaScript实现Base64编码与解码的代码详解

    本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...

  4. js base64 编码解码

    js base64 编码解码 encode decode,可以直接使用 function Base64() {// private property_keyStr = "ABCDEFGHIJ ...

  5. python使用base64编码解码数据

    python使用base64编码解码数据 base64模块是用来作base64编码解码,常用于小型数据的传输.编码后的数据是一个字符串,其包括a-z.A-Z.0-9./.+共64个字符,即可用6个字节 ...

  6. 将base64编码图片上传到七牛云

    将base64编码图片上传到七牛云 接口说明 FAQ >对象存储 >上传下载> 如何上传base64编码图片到七牛云 在七牛云FAQ上有一篇文章,讲解的接口的使用 https://d ...

  7. php和js中,utf-8编码转成base64编码

    1.php下转化base64编码 php中,文本文件的编码决定了程序变量的编码,比如以下代码在不同编码的php文件中,展示的效果也是不一样的 <?php$word = '严';echo base ...

  8. android Java BASE64编码和解码一:基础

    今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输. 类似这样的: {"name":"jike&q ...

  9. .Net Base64编码

    using System; using System.Text; using System.IO; using System.Security; using System.Security.Crypt ...

  10. Base64编码的字符串与图片的互转

    用Flex写了一个例子,图片(暂时仅支持png.jpg/jpeg)转成base64编码的字符串(默认取上传文件的后缀名,然后添加了"data:image/(png|gif|jpg|jpeg) ...

最新文章

  1. WebSphere MQ 自动启动发送方通道
  2. word自带公式编辑_怎样在word2013中快速插入数学公式
  3. python基础题面试_python常见面试题
  4. jquery 简单分页插件jQuerypage
  5. flutter 国际化_从0开始设计Flutter独立APP | 第二篇: 完整的国际化语言支持
  6. java不用插件播放媒体文件_java servlet不用插件上传文件:
  7. firstchild.data与childNodes[0].nodeValue意思
  8. Token实现单点登陆
  9. hdu 1575 Tr A (二分矩阵)
  10. asp.net页面去调用通过SSL加密的webservice报错
  11. 日志管理工具 journalctl用法
  12. 国内最强Web3D软件WebMax正式版发布
  13. etal斜体吗 参考文献_论文参考文献格式要求
  14. JS代码获取当前项目名称
  15. 北大2021年计算机分数分数线,北京大学2021年考研复试基本分数线已发布
  16. 拉格朗日插值法 【python】
  17. python爬虫之 爬取案例网页ajax请求的数据
  18. SpringBoot+Shiro+JWT+Mybatis-Plus搭建admin-shiro管理系统
  19. 数学建模——多元统计分析例题及程序
  20. LCD1602液晶显示模块学习笔记

热门文章

  1. python用变量的值声明新的变量
  2. Opencv(C++)笔记--模板匹配cv::matchTemplate()和最值计算cv::minMaxLoc()
  3. springCloud面试之feign+ribbon+hystirx交互概览
  4. 2068 Problem M 鸡兔同笼
  5. 经典问题 小白鼠试毒药 这个算法你绝对不知道
  6. IMU:姿态解算算法集合
  7. SQL查询语句、联合查询
  8. uniapp适配pc_uni-app支持PC版!
  9. centos7配置端口转发
  10. 电容在微分、积分电路中的本质以及应用