BASE64加密原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BASE64加密原理相关的知识,希望对你有一定的参考价值。

给个例子

1. Base64使用A--Z,a--z,0--9,+,/ 这64个字符.
2. 编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了.
3. 解码原理:将4个字节转换成3个字节.先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位.这样就还原了.
参考技术A base64只是一种编码方法
BlowFish写过Base64编码算法吧
百度百科写的也还可以http://baike.baidu.com/view/469071.htm本回答被提问者采纳

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加密原理的主要内容,如果未能解决你的问题,请参考以下文章

base64 加密原理 解密原理

加密算法Base64

Base64加密与解密

base64加密和解码原理和代码

JAVA怎么样实现Base64加密解密?

[转]Base64 算法原理,以及编码解码加密解密 介绍