假设需要加密的字符串是Jasmine

具体转换步骤:

第一步   将待转换的字符串转为一个个字符
第二步  计算每一个字符对应的ASCII码十进制
第三步  计算出十进制对应的二进制,若不足8位,在前面添加0进行补全
第四步  将8位的二进制码,按照6个6个一组划分,若不能整除6,在最末添加0补足6位
第五步   计算对应的十进制编码
第六步   按照base64表,查看对应的字符
第七步   将加密后的字符3个3个分成一组,不足3位的添加=进行补全
第八步   得到最终结果

同时得到base64位加密后的特征:
长度是3的倍数
只含有65中字符,大写的A至Z,小写的a至z,数字0到9,以及3种符号+/ =,=最多两个,且在末尾

转换表如上

sun.misc.中自带Base64的加密和解密函数
public class TestBase {

    String a = "Jasmine";
String b= "SmFzbWluZQ=="; @Test
public void Test() throws IOException {
BASE64Encoder encoder=new BASE64Encoder();
String content=new String(encoder.encodeBuffer(a.getBytes("UTF-8")));
BASE64Decoder decoder = new BASE64Decoder();
String content2 =new String(decoder.decodeBuffer(b),"UTF-8");
System.out.println(content);
System.out.println(content2);
} }

  

base64 加密原理 解密原理的更多相关文章

  1. Java Base64加密、解密原理Java代码

    Java Base64加密.解密原理Java代码 转自:http://blog.csdn.net/songylwq/article/details/7578905 Base64是什么: Base64是 ...

  2. Java Base64加密、解密原理Java代码(转载)

    博客来源:http://blog.csdn.net/songylwq/article/details/7578905 Base64是什么: Base64是网络上最常见的用于传输8Bit字节代码的编码方 ...

  3. JS URL 使用base64加密与解密

    JS编码方式: <script type="text/javascript"> document.write(encodeURI("http://www.w3 ...

  4. JS URL 使用base64加密与解密和MD5解密

    JS编码方式: <script type="text/javascript"> document.write(encodeURI("http://www.w3 ...

  5. js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结

    写前端的时候,很多的时候是避免不了注册这一关的,但是一般的注册是没有任何的难度的,无非就是一些简单的获取用户输入的数据,然后进行简单的校验以后调用接口,将数据发送到后端,完成一个简单的注册的流程,那么 ...

  6. java——base64 加密和解密

    base64 一.加密 *.若有要求输入字符必须为UTF-8: 则需str.getByte("utf-8");  //在getByte()中指定utf-8编码,否则中文字符将被加密 ...

  7. js中实现base64加密、解密

    //base64加密 解密 /* //1.加密 var result = Base.encode('125中文'); //--> "MTI15Lit5paH" //2.解密 ...

  8. 字符串的 Base64 加密和解密

    base64加密: FORM encode_base64 USING p_business “字符串string CHANGING p_base64. DATA l_xstring TYPE xstr ...

  9. Base64加密、解密

    #region Base64加密方法 /// <summary> /// Base64加密,采用utf8编码方式加密 /// </summary> /// <param ...

随机推荐

  1. 一个六年Java程序员的从业总结:比起掉发,我更怕掉队

    我一直担惊受怕,过去,可能是因为我年轻,但现在,我已经不是那么年轻了,我仍然发现有很多事情让我害怕. 当年纪越来越大后,我开始变得不能加班.我开始用更多的时间和家人在一起,而不是坐在计算机前(尽管这样 ...

  2. Web开发相关笔记 #04# WebSocket

    本文的主要内容: HTTP VS. WebSocket WebSocket 的客户端实现(JavaScript) WebSocket 的服务端实现(Java & apache WebSocke ...

  3. Docker学习笔记之使用 Docker Hub 中的镜像

    0x00 概述 自己编写 Dockerfile 能够很好的实现我们想要的程序运行环境,不过如果装有我们想要环境的镜像已经由热心的开发者构建好并共享在 Docker Hub 上,直接使用它们就会远比自己 ...

  4. Prometheus监控学习笔记之教程推荐

    最近学习K8S和基于容器的监控,发现了如下的教程质量不错,记录下来以备参考 1. K8S最佳实战(包括了K8S的Prometheus监控和EFK日志搜集) https://jimmysong.io/k ...

  5. Centos环境自写脚本查看使用php或nginx占用内存

    在CentOs6.4下,用root权限测试. # cd ~ //进入home目录 # vim .bashrc //编辑文件,把下面代码放入地址 mem () { top -n1 -b | head - ...

  6. powermock+mockito+testng 单元测试pom文件

    0:Supported versions PowerMock version 1.7.0 and upper has experimental support of Mockito 2. A lot ...

  7. Js扩容

    /*脚本统一调用工具(企业端)*/ //杂项工具 var MiscUtils = { //去除字符串中所有的空格 ClearStringEmpty: function (str) { var strR ...

  8. 10: vue-router和单文件组件

    1.1 vue-router路由基本使用 官网: https://router.vuejs.org/zh/api/#router-link 1.安装vue-router bower info vue- ...

  9. jtl转化成CSV格式的聚合报告

    1: 从官网下载4.0 的zip 包解压缩,下载地址: https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-4.0.zip ,假 ...

  10. mtr 命令

    mtr命令的使用: -r  --report  以报告的方式发布监测的结果 -s 30   指定发送包的大小  这个随意   按照自己的需求 -i 10  设置icmp协议返回包的时间 -n  no- ...