base64 加密原理 解密原理
假设需要加密的字符串是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 加密原理 解密原理的更多相关文章
- Java Base64加密、解密原理Java代码
Java Base64加密.解密原理Java代码 转自:http://blog.csdn.net/songylwq/article/details/7578905 Base64是什么: Base64是 ...
- Java Base64加密、解密原理Java代码(转载)
博客来源:http://blog.csdn.net/songylwq/article/details/7578905 Base64是什么: Base64是网络上最常见的用于传输8Bit字节代码的编码方 ...
- JS URL 使用base64加密与解密
JS编码方式: <script type="text/javascript"> document.write(encodeURI("http://www.w3 ...
- JS URL 使用base64加密与解密和MD5解密
JS编码方式: <script type="text/javascript"> document.write(encodeURI("http://www.w3 ...
- js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
写前端的时候,很多的时候是避免不了注册这一关的,但是一般的注册是没有任何的难度的,无非就是一些简单的获取用户输入的数据,然后进行简单的校验以后调用接口,将数据发送到后端,完成一个简单的注册的流程,那么 ...
- java——base64 加密和解密
base64 一.加密 *.若有要求输入字符必须为UTF-8: 则需str.getByte("utf-8"); //在getByte()中指定utf-8编码,否则中文字符将被加密 ...
- js中实现base64加密、解密
//base64加密 解密 /* //1.加密 var result = Base.encode('125中文'); //--> "MTI15Lit5paH" //2.解密 ...
- 字符串的 Base64 加密和解密
base64加密: FORM encode_base64 USING p_business “字符串string CHANGING p_base64. DATA l_xstring TYPE xstr ...
- Base64加密、解密
#region Base64加密方法 /// <summary> /// Base64加密,采用utf8编码方式加密 /// </summary> /// <param ...
随机推荐
- 数据库的增、删、改、查 (CURD)
增改查删可以用CURD来表示 增加:create 修改:update 查找:read 删除:delete 增加create : insert +表名+values+(信息): in ...
- Golang生成区间随机整数
package main import ( "fmt" "math/rand" "time" ) func main() { rand.Se ...
- js输出
JavaScript 可以通过4种不同的方式在html页面输出数据 1.使用window.alert() 弹出警告框,由于window为js的内置类,可简写为alter() <script> ...
- UUID实现之一twitter的分布式自增IDsnowflake算法
Twitter的分布式自增ID算法snowflake (Java版) 概述 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点 ...
- rabbitmq级联之shovel插件和exchange.bind
有时候,由于各方面原因比如安全原因.系统间隔离,我们需要实现在多个rabbitmq实例或者一个rabbitmq实例的多个vhost间推送消息.在上一版的实现中,公司使用java自行实现了一个类似转发器 ...
- 通过注册表regedit对Windows回收站进行恢复
误删资料恢复 一不小心,删错了,还把回收站清空了,咋办啊? 只要三步,你就能找回你删掉并清空回收站的东西 步骤: 1.单击"开始——运行,然后输入regedit(打开注册表) 2.依次展开: ...
- 11: Nginx安装lua支持
1.1 Nginx 使用lua脚本 注:需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module 1.Nginx安装lua支持 wget -c http ...
- android之进度条
xml引用 <ProgressBar android:id="@+id/pb_progressbar" style="@style/StyleProgressBar ...
- gitlab服务器迁移
公司更换了新的服务器,需要把原先的gitlab迁移到新的服务器上. 1.迁移准备工作和思路:从a服务器迁移到b服务器,由于Gitlab自身的兼容性问题,高版本的Gitlab无法恢复低版本备份的数据,需 ...
- zabbix配置短信告警
zabbix版本:3.0.7 短信服务商:云片网 首先在云片网添加相应签名和模板 参照格式 签名:xxx告警 模板: [xxx告警]故障:#status# 服务器:#host# 发生:#trigger ...