Javabase64加密解密两种实现⽅式
1、为什么要使⽤Base 64
Base 64主要⽤途不是加密,⽽是把⼀些⼆进制数转成普通字符,⽅便在⽹络上传输。 由于⼀些⼆进制字符在传输协议中属于控制字符,不能直接传送,所以需要转换⼀下才可以。由于某些系统中只能使⽤ASCII字符,Base64就是⽤来将⾮ASCII字符的数据转换成ASCII字符的⼀种⽅法,Base64特别适合在http,mime协议下快速传输数据。⽐如⽹络中图⽚的传输。
Base64,并⾮安全领域下的加密解密算法。虽然经常遇到所谓的base64的加密解密。但base64只能算是⼀个编码算法,对数据内容进⾏编码来适合传输。虽然base64编码过后原⽂也变成不能看到的字符格式,但是⽅式初级⼜简单。
2、Base 64 原理
Base64编码⽅法,要求把每三个8Bit的字节转换为四个6Bit的字节,其中,转换之后的这四个字节中每6个有效bit为是有效数据,空余的那两个 bit⽤0补上成为⼀个字节。因此Base64所造成数据冗余不是很严重,Base64是当今⽐较流⾏的编码⽅法,因为它编起来速度快⽽且简单。
 举个例⼦,有三个字节的原始数据:aaaaaabb bbbbccccc ccdddddd(这⾥每个字母表⽰⼀个bit位)
 那么编码之后会变成:      00aaaaaa 00bbbbbb 00cccccc 00dddddd
所以可以看出base64编码简单,虽然编码后不是明⽂,看不出原⽂,但是解码也很简单
java加密方式有哪些2、Base64加密解密的实现⽅式:两种
package com.liuxd;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.util.Base64;
/**
* Created by Liuxd on 2018-11-02.
*/
public class TestString {
public static void main(String[] args) throws Exception {
String str = "青锋剑,偃⽉⼑";
base64(str);
enAndDeCode(str);
}
/**
* Base64
*
*/
public static void base64(String str) {
byte[] bytes = Bytes();
/
/Base64 加密
String encoded = Encoder().encodeToString(bytes);
System.out.println("Base 64 加密后:" + encoded);
//Base64 解密
byte[] decoded = Decoder().decode(encoded);
byte[] decoded = Decoder().decode(encoded);
String decodeStr = new String(decoded);
System.out.println("Base 64 解密后:" + decodeStr);
System.out.println();
}
/**
* BASE64加密解密
*/
public static void enAndDeCode(String str) throws Exception {
String data = Bytes());
System.out.println("sun.misc.BASE64 加密后:" + data);
byte[] byteArray = decryptBASE64(data);
System.out.println("sun.misc.BASE64 解密后:" + new String(byteArray));    }
/**
* BASE64解密
* @throws Exception
*/
public static byte[] decryptBASE64(String key) throws Exception {
return (new BASE64Decoder()).decodeBuffer(key);
}
/**
* BASE64加密
*/
public static String encryptBASE64(byte[] key) throws Exception {
return (new BASE64Encoder()).encodeBuffer(key);
}
}
输出结果:
Base 64 加密后:6Z2S6ZSL5YmR77yM5YGD5pyI5YiA
Base 64 解密后:青锋剑,偃⽉⼑
sun.misc.BASE64 加密后:6Z2S6ZSL5YmR77yM5YGD5pyI5YiA
sun.misc.BASE64 解密后:青锋剑,偃⽉⼑

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。