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));
}
}
java实现base64编码
最新推荐文章于 2024-08-13 10:21:34 发布