android base64/32编码

base64规则:
3个字节,拆分成4*6bit,每一份开头补2个0,即4个字节;
如果剩余不够3个字节,则使用填充位(0),拆分成n*6bit,每一份开头补2个0;还不够4个字节的话,添加字符“=”,即补齐4字节
=》所以,转换后的长度,大于等于原长度的4/3倍

base32规则:
5个字节,拆分成8*5bit,每一份开头补3个0,即8个字节
如果剩余不够5个字节,则使用填充位(0),拆分成n*5bit,每一份开头补3个0;还不够8个字节的话,添加字符“=”,即补齐8字节
=》所以,转换后的长度,大于等于原长度的8/5倍


1、 android sdk中提供了base64编解码的能力: android.util.Base64
/frameworks/base/core/java/android/util/Base64.java

2、 java 工程下,有3种方式
2.1 sun.misc 包下面的BASE64Encoder、BASE64Decoder
2.2 commons-codec.jar 包中的Base64,(其中,包含一些通用的编码解码算法)

2.3 com.sun.org.apache.xerces.internal.impl.dv.util.Base64,需要使用反射获取


参考:

http://tools.ietf.org/html/rfc4648

http://www.ruanyifeng.com/blog/2008/06/base64.html
http://androidxref.com/6.0.0_r1/xref/frameworks/base/core/java/android/util/Base64.java
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001399413803339f4bbda5c01fc479cbea98b1387390748000
http://www.cnblogs.com/reonlyrun/archive/2006/12/29/640991.html
http://blog.csdn.net/weiwei5910/article/details/38380625?utm_source=tuicool&utm_medium=referral       android
http://www.cnphp6.com/archives/67171       android
http://hw1287789687.iteye.com/blog/1971297
http://blog.csdn.net/chszs/article/details/17027535   java
http://palwang.iteye.com/blog/906425
http://blog.csdn.net/jiadebin890724/article/details/7404321

http://commons.apache.org/proper/commons-codec/download_codec.cgi

http://blog.csdn.net/mittermeyer/article/details/96950

http://blog.chinaunix.net/uid-12774292-id-58347.html

http://blog.csdn.net/instruder/article/details/5963344




猜你喜欢

转载自blog.csdn.net/yhtppp/article/details/49645297