Java实现BASE64编解码

Java实现BASE64编解码

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java实现BASE64编解码

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

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{
			byte[] encodeBase64 = Base64.encodeBase64(str.getBytes("UTF-8"));
			System.out.println("RESULT: " + new String(encodeBase64));
		} catch(UnsupportedEncodingException e){
			e.printStackTrace();
		}
	}
}

输出结果为:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118490.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C 异步调用

    C 异步调用C异步调用

    2022年7月27日
    6
  • 少儿编程mta证书_少儿编程项目计划书

    少儿编程项目计划书未来30年是人工智能的伟大时代,学编程会让孩子的未来充满更多可能性。此项目是针对小学生,主要是以培养学习兴趣,接受最基本的编程概念,并能够通过学到的知识完成一些小的课题,激发和培养学生的编程思维。在学习的过程中,主要通过实体的编程玩具,学会构建自己的作品,比如学习编程语言,机器人等课程。本项目提供多维度的少儿编程培训服务,包括编辑机器人研发、在线编程教育培训、线下培训等。一、线下…

    2022年4月8日
    42
  • css中placeholder用法_html placeholder

    css中placeholder用法_html placeholder#iInput::-webkit-input-placeholder{color:blue;}#iInput:-moz-placeholder{color:blue;}#iInput:-ms-

    2022年8月1日
    6
  • vue上传文件组件使用_uniapp支持ios文件上传

    vue上传文件组件使用_uniapp支持ios文件上传imgList:[],size:0,limit:undefined}},methods:{//设置fileClick(){document.getElementById(‘upload_file’).click()},fileChange(el){if(!el.target.files[0].size)returnthis.fileList(el.target)el.target.value=‘’},fileList(fileList){letfil

    2022年8月15日
    2
  • 项目管理-5大过程组-10大知识领域-47过程

    项目管理五大过程组:1、启动过程组:获得授权,定义一个新项目或现有项目的一个新阶段,正式开始该项目或阶段的一组过程。2、规划过程组:明确项目范围,优化目标,为实现目标而制定行动方案的一组过程。3、执行过程组:完成项目管理计划中确定的工作以实现项目目标的一组过程。4、监控过程组:跟踪、审查和调整项目进展与绩效,识别必要的计划变更并启动相应变更的一组过程。5、收尾过程组:为完结所有过程组的…

    2022年4月13日
    51
  • 网络传输的两种方式——同步传输和异步传输的区别[通俗易懂]

    网络传输的两种方式——同步传输和异步传输的区别[通俗易懂]在网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。在计算机网络中,定时的因素称为位同步。同步是要接收方按照发送方发送的每个位的起止时刻和速率来接收数据,否则会产生误差。通常可以采用同步或异步的传输方式对位进行同步处理。1.异步传输(AsynchronousTransmission):异步传输…

    2022年4月19日
    273

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号