Base64编码与解码

原创 2008年10月03日 16:39:00

--------------------------[收集回来的资料]------------------------

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,在发送电子邮件时,服务器认证的用户名和密码需要用Base64编码,附件也需要用Base64编码。
下面简单介绍Base64算法的原理,由于代码太长就不在此贴出
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
转换后,我们用一个码表来得到我们想要的字符串(也就是最终的Base64编码),这个表是这样的:
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y
原文的字节最后不够3个的地方用0来补足,转换时Base64编码用=号来代替。这就是为什么有些Base64编码会以一个或两个等号结束的原因,但等号最多只有两个。
举一个例子,abc经过Base64编码以后的结果是YWJj.

发邮件的时候所写的信息自动在后台转换然后传输

-------------------------------------------------------------------------------------------------

Base64的使用,解码和编码

Java Base64 这是一个用于编码和解码(encode/decode )base64字符串和数据流的Java开源类库。Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。可用来作...
  • lzqjfly
  • lzqjfly
  • 2013年04月24日 10:20
  • 2854

Base64的编码和解码

为什么要使用Base64? 在设计这个编码的时候,我想设计人员最主要考虑了3个问题: 1.是否加密? 2.加密算法复杂程度和效率 3.如何处理传输? 加密是肯定的,但是加密的目的不...
  • petib_wangwei
  • petib_wangwei
  • 2014年08月19日 17:40
  • 2031

iOS Base64 String 转成 NSString (base64编/解码)

编码(加密)NSData *encodeData = [decodeString dataUsingEncoding:NSUTF8StringEncoding]; NSString *base64St...
  • wxs0124
  • wxs0124
  • 2016年09月12日 14:37
  • 7591

base64编码/解码的实现(C语言)

base64的作用不是加密,而是用来避免“字节”中不能转换成可显示字符的数值。 比如0-32的控制字符,空格,制表符都不能被打印在纸上,通过base64转换可以打印在纸上,数据可以在传统平面媒介上携...
  • rentiansheng
  • rentiansheng
  • 2013年11月30日 10:30
  • 2055

C#和JAVA利用BASE64实现图片编码解码

主要针对服务器端和客户端利用BASE64对图片和字符串进行编码解码操作。 客户端是Android,服务器端是webservice,编码解码方式如下: 一、Android 实现图片上传 1.j...
  • sinat_27693393
  • sinat_27693393
  • 2016年07月22日 20:32
  • 1325

.net C#实现Base64编码与解码

一、编码规则     Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24位数据,再把这24位数据分成4组,...
  • nana2046
  • nana2046
  • 2009年04月23日 13:42
  • 13423

iOS 自带的base64 编码与解码

在我们项目中需要将一个NSData类型的数据进行base64编码为一个字符串进行传输。这里记录下编码和解码的方式 编码: UIImage *image = [UIImage ima...
  • qqMCY
  • qqMCY
  • 2015年01月06日 14:57
  • 4071

url编解码与base64编解码

最近做手Q的邀请功能,遇到一个坑,手Q结构化消息分享功能接口如下: /**  * @param scene 标识发送手Q会话或者Qzone  *         eQQScene.QQScene_QZ...
  • linxinfa
  • linxinfa
  • 2016年08月11日 23:40
  • 2719

java 中使用base64编码和解码:

java 中使用base64编码和解码:   第一种方式: 通过反射使用java 中不对外公开的类: Java代码   /***       * encode by Base64   ...
  • QMW19910301
  • QMW19910301
  • 2015年10月15日 15:28
  • 1092

Js实现Base64编码、解码

1.加密解密方法使用: //1.加密 var str = '124中文内容'; var base = new Base64(); var result = base.encode(str); //d...
  • u011127019
  • u011127019
  • 2016年06月14日 17:17
  • 27617
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Base64编码与解码
举报原因:
原因补充:

(最多只允许输入30个字)