我是靠谱客的博主 清新歌曲,最近开发中收集的这篇文章主要介绍base64 算法 java_java基础---->Base64算法的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。详细的Base64信息,可以参见维基百科:https://en.wikipedia.org/wiki/Base64。今天,我们开始java中base64算法的使用。

结构导航

Java自带的Base64算法

项目结构如下

wNgsw2B1Gt9vwAAAABJRU5ErkJggg==

一、 引入jdk自带的rt.jar包

要使用Base64Encoder,却发现在Eclipse中无法找到该类,原来Base64Encoder并不属于JDK标准库范畴,但是又包含在了JDK中。

问题的解决方案: Project->Properties,选择Java Build Path设置项,再选择Libraries标签,Add External Jars添加%JAVA_HOME%jrelibrt.jar就行。

ohLdAmwbAAAAAASUVORK5CYII=

二、 我们通过junit方法,来加以对Base64算法的测试,明文:my name is huhx。

private static String src = "my name is huhx";

@Testpublic voidhuhxBase64() {try{

BASE64Encoder encoder= newBASE64Encoder();

String encode=encoder.encode(src.getBytes());

System.out.println("encode: " +encode);

BASE64Decoder decoder= newBASE64Decoder();

String decode= newString(decoder.decodeBuffer(encode));

System.out.println("decode: " +decode);

}catch(IOException e) {

e.printStackTrace();

}

}

三、 运行结果如下:

encode: bXkgbmFtZSBpcyBodWh4

decode: my nameis huhx

commons-codec的Base64算法

一、 引入commons-codec-1.10.jar包,提供对base64算法的支持

二、 我们通过junit方法,来加以对Base64算法的测试,明文:my name is huhx。

@Testpublic voidcommonCodeBase64() {byte[] encodeBytes =Base64.encodeBase64(src.getBytes());

System.out.println("encode: " + newString(encodeBytes));byte[] decodeBytes =Base64.decodeBase64(encodeBytes);

System.out.println("decode: " + newString(decodeBytes));

}

三、 运行结果如下:

encode: bXkgbmFtZSBpcyBodWh4

decode: my nameis huhx

bcprov的Base64算法

一、 引入bcprov-jdk15on-154.jar,提供对base64算法的支持

二、 我们通过junit方法,来加以对Base64算法的测试,明文:my name is huhx。

@Testpublic voidbouncyCodeBase64() {byte[] encodeBytes =org.bouncycastle.util.encoders.Base64.encode(src.getBytes());

System.out.println("encode: " + newString(encodeBytes));byte[] decodeBytes =org.bouncycastle.util.encoders.Base64.decode(encodeBytes);

System.out.println("decode: " + newString(decodeBytes));

}

三、 运行结果如下:

encode: bXkgbmFtZSBpcyBodWh4

decode: my name is huhx

自定义的base64算法

一、 HuhxBase64.java的自定义算法,内容如下:

packagecom.huhx.base64.jdk;/*** writer: huhx*/

public classHuhxBase64 {private static final String CODES = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";//base64解密

private static byte[] base64Decode(String input) {if (input.length() % 4 != 0) {throw new IllegalArgumentException("Invalid base64 input");

}byte decoded[] = new byte[((input.length() * 3) / 4)- (input.indexOf('=') > 0 ? (input.length() - input.indexOf('=')) : 0)];char[] inChars =input.toCharArray();int j = 0;int b[] = new int[4];for (int i = 0; i < inChars.length; i += 4) {//This could be made faster (but more complicated) by precomputing//these index locations.

b[0] =CODES.indexOf(inChars[i]);

b[1] = CODES.indexOf(inChars[i + 1]);

b[2] = CODES.indexOf(inChars[i + 2]);

b[3] = CODES.indexOf(inChars[i + 3]);

decoded[j++] = (byte) ((b[0] << 2) | (b[1] >> 4));if (b[2] < 64) {

decoded[j++] = (byte) ((b[1] << 4) | (b[2] >> 2));if (b[3] < 64) {

decoded[j++] = (byte) ((b[2] << 6) | b[3]);

}

}

}returndecoded;

}//base64加密

private static String base64Encode(byte[] in) {

StringBuilder out= new StringBuilder((in.length * 4) / 3);intb;for (int i = 0; i < in.length; i += 3) {

b= (in[i] & 0xFC) >> 2;

out.append(CODES.charAt(b));

b= (in[i] & 0x03) << 4;if (i + 1

b|= (in[i + 1] & 0xF0) >> 4;

out.append(CODES.charAt(b));

b= (in[i + 1] & 0x0F) << 2;if (i + 2

b|= (in[i + 2] & 0xC0) >> 6;

out.append(CODES.charAt(b));

b= in[i + 2] & 0x3F;

out.append(CODES.charAt(b));

}else{

out.append(CODES.charAt(b));

out.append('=');

}

}else{

out.append(CODES.charAt(b));

out.append("==");

}

}returnout.toString();

}public static voidmain(String[] args) {

String input= "I love you, huhx!";

String encode=base64Encode(input.getBytes());

System.out.println("encode: " +encode);

String decode= newString(base64Decode(encode));

System.out.println("decode: " +decode);

}

}

二、 运行结果如下:

encode: SSBsb3ZlIHlvdSwgaHVoeCE=decode: I love you, huhx!

友情链接

最后

以上就是清新歌曲为你收集整理的base64 算法 java_java基础---->Base64算法的使用的全部内容,希望文章能够帮你解决base64 算法 java_java基础---->Base64算法的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部