import java.util.ArrayList;
import java.util.List;
import org.apache.commons.codec.binary.Base64;
public class MyBase64 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// char c = '0';
// int i = (int)c;
// System.out.println(i);
// System.out.println(Integer.toBinaryString(i));
String s = "stringad";
System.out.println(encode(s));
System.out.println(encode(s.getBytes()));
System.out.println(encode2(s.getBytes()));
System.out.println(encode3(s.getBytes()));
//System.out.println(convertBinaryString2Int("10"));
}
public static String encode(String str){
char[] base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();
char[] cs = str.toCharArray();
StringBuilder sb = new StringBuilder();
for(char c: cs){
String bin = Integer.toBinaryString((int)c);
System.out.println("bin: "+bin);
while(bin.length()<8){
bin = "0"+bin;
}
sb.append(bin);
}
System.out.println("sb: "+sb);
List<String> list = new ArrayList<String>();
String temp = sb.toString();
while(temp.length()>6){
String s = temp.substring(0,6);
temp = temp.substring(6,temp.length());
list.add(s);
}
while(temp.length()<6){
temp+="0";
}
list.add(temp);
String result = "";
for(String s:list){
//System.out.println(s);
int num = convertBinaryString2Int(s);
System.out.print(num+" ");
result += base[num]+"";
}
System.out.println();
if(result.length()%3==1){
result+="==";
}
if(result.length()%3==2){
result+="=";
}
return result;
}
public static int convertBinaryString2Int(String str){
int sum = 0;
for(int i= str.length()-1;i>=0;i--){
Integer num = Integer.parseInt(str.charAt(i)+"");
sum += num * Math.pow(2, str.length()-1-i);
}
return sum;
}
/**
* 编码
* @param bstr
* @return String
*/
public static String encode(byte[] bstr){
return new sun.misc.BASE64Encoder().encode(bstr);
}
/**
* 二进制数据编码为BASE64字符串
*
* @param bytes
* @return
* @throws Exception
*/
public static String encode2(final byte[] bytes) {
return new String(Base64.encodeBase64(bytes));
}
public static String encode3(final byte[] bytes) {
return new String(java.util.Base64.getEncoder().encode(bytes));
}
}
分享到:
相关推荐
实现BASE64编码和解码程序, 在类中实现如下函数并运行测试正确。 BASE64编码算法请在网上查询。 public String encode(byte[] data) { } public byte[] decode(String b) { }
实现base64编码和解码。实现下面的类中的两个功能。 public class Base64 { /** 实现解码功能 */ public static byte[] decode(byte[] dest) { } /** 实现编码功能 */ public static byte[] encode(byte[] ...
本篇文章主要介绍了Java实现BASE64编码和解码的方法,BASE64编码通常用于转换二进制数据为文本数据,有需要的可以了解一下。
用Java编写的Base64编码技术,可以把密文编码成为Base64编码,Base64编码技术广泛用于编码密文和电子邮件。
我在网上找了半天的java、js的base64编码解码结果没有,只好自己写了,js一个文件,java一个文件,调用里面是使用方法
BASE64编码和解码的JAVA实现。 太简单了。直接调用API实现的。 反正不要分,你们看着下吧。
java-Base64编码两个jar包,两个都可以用。
Java编写的Base64编码和解码程序,支持中文。
android 开发中有时会需要用到base64加解密,其实base64并不算是一种加密的算法,只是一种基于64个可打印字符来表示二进制数据的表示方法。 google在android.util下提供了一个Base64工具类,可以很方便的用它encode...
java端:返回类型非字符接口调用StringUtils#base64AndCompressJson进行编码压缩 ,返回类型为字符接口调用StringUtils#base64Andcompress js 端:引入压缩包中的js文件 ,调用deBase64AndUncompress进行解压解码
本文主要介绍了java 自定义实现base64编码转换的方法,具有很好的参考价值,下面跟着小编一起来看下吧
在本文中,我们介绍了Base64.encodeBase64String方法的用途和功能,它是Java语言中用于Base64编码...Base64.encodeBase64String方法是Java中进行Base64编码的一种便捷实现,能够轻松地将二进制数据转换成Base64字符串。
Base64 编码解码 Java ,Java对字符串Base64 编码解码的方法!!
用Java实现base64编码和解码 package base64; public class translate { public int a=0; public char[] list; public translate(){ list=new char[64]; int i; char c='A'; for(i=0;i;i++){ list...
主要介绍了Java基于Base64实现编码解码图片文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
base64编码规则的java实现.Provides encoding of raw bytes to base64-encoded characters, and decoding of base64 characters to raw bytes.
Java Base64 编码和解码程序,支持中文。
本文实例讲述了jQuery实现文件编码成base64并通过AJAX上传的方法。分享给大家供大家参考,具体如下: 使用AJAX是无法直接上传文件的,一般都是新建个iframe在它里面完成表单提交的过程以达到异步上传文件的效果。 ...
NULL 博文链接:https://314649444.iteye.com/blog/1889750
自己用java实现的Base64编码和解码,支持自定义字母表,文章地址http://blog.csdn.net/zzhouqianq/article/details/46992347