博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BASE64 编码和解码
阅读量:5949 次
发布时间:2019-06-19

本文共 1815 字,大约阅读时间需要 6 分钟。

依赖jar: import org.apache.commons.codec.binary.Base64;

BASE64和其他相似的编码算法通常用于转换二进制数据为文本数据,其目的是为了简化存储或传输。更具体地说,BASE64算法主要用于转换二进 制数据为ASCII字符串格式。Java语言提供了一个非常好的BASE64算法的实现,即Apache Commons Codec工具包。本文将简要地讲述怎样使用BASE64以及它是怎样工作的。

下面我们用BASE64对字符串进行编码:

 

import java.io.UnsupportedEncodingException; import org.apache.commons.codec.binary.Base64;    public class Base64Test {     public static void main(String[] args){         String str = "Hello World";         try{             System.out.println("RESULT: " + encodeStr(str));         } catch(UnsupportedEncodingException e){             e.printStackTrace();         }     } }

 

/**      * 解密      *       * @param pwd      * @return      * @see [类、类#方法、类#成员]      */      public static String decodeStr(String pwd)      {          Base64 base64 = new Base64();          byte[] debytes = base64.decodeBase64(new String(pwd).getBytes());          return new String(debytes);      }      /**      * 加密      *       * @param pwd      * @return      * @see [类、类#方法、类#成员]      */      public static String encodeStr(String pwd)      {          Base64 base64 = new Base64();          byte[] enbytes = base64.encodeBase64Chunked(pwd.getBytes());          return new String(enbytes);

 

输出结果为:

  1. RESULT: SGVsbG8gV29ybGQ=  

上面输出的字符串是“Hello world”字符串的8位二进制值被连接在一起,然后以6位分组。随后每个组都被转换成一个单独的数字并映射到Base64的索引。

binary  dec Base64 010010  18  S 000110  6   G 010101  21  V 101100  44  s 011011  27  b 000110  6   G 111100  60  8 100000  32  g 010101  29  d 110110  54  2 111101  61  9 110010  50  y 011011  27  b 000110  6   G 010000  16  Q

注意:字符串最后加上了“=”,其意思表示字符串编码的结束。

作者: 

出处: 
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】 
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】 
如果,您对我的博客内容感兴趣,请继续关注我的后续博客,我是【Orson】 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段 声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 

转载:http://www.cnblogs.com/java-class/p/4590383.html

你可能感兴趣的文章
Kafka服务端脚本详解(1)一topics
查看>>
Zookeeper 集群安装配置,超详细,速度收藏!
查看>>
js中var self=this的解释
查看>>
js--字符串reverse
查看>>
面试题
查看>>
Facebook 接入之获取各个配置参数
查看>>
android ant Compile failed; see the compiler error
查看>>
项目经理笔记一
查看>>
[原]Jenkins(三)---Jenkins初始配置和插件配置
查看>>
Cache Plugin 实现过程
查看>>
TCP服务器端口转发: netsh
查看>>
nginx实现rtmp,flv,mp4流媒体服务器
查看>>
46.tornado绑定域名或者子域名泛域名的处理
查看>>
文本过滤--sed 1
查看>>
PHP CURL并发,多线程
查看>>
ES 概念及动态索引结构和索引更新机制
查看>>
iOS 开发百问(2)
查看>>
MySQL for Mac 安装和基本操作(包含后期的环境变量设置)
查看>>
Linux及windows下常见压缩程序的压缩能力对比
查看>>
JAVAEE-junit测试hibernate里的方法(hibernate交给spring管理)的问题
查看>>