`
edgar108
  • 浏览: 33426 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java实现base64编码

    博客分类:
  • java
阅读更多
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编码和解码程序

    实现BASE64编码和解码程序, 在类中实现如下函数并运行测试正确。 BASE64编码算法请在网上查询。 public String encode(byte[] data) { } public byte[] decode(String b) { }

    用java实现base64编码和解码

    实现base64编码和解码。实现下面的类中的两个功能。 public class Base64 { /** 实现解码功能 */ public static byte[] decode(byte[] dest) { } /** 实现编码功能 */ public static byte[] encode(byte[] ...

    java和js相互base64编码解码

    总之,Java和JavaScript中Base64编码和解码的实现原理相似,都是将二进制数据转换为可打印的ASCII字符。Java自Java 8开始内置了Base64支持,而JavaScript则依赖于`btoa()`和`atob()`函数,或者使用第三方库。在实际...

    Java实现BASE64编码和解码的方法

    Java实现BASE64编码和解码的方法是指利用Java编程语言中内置的类和方法,对二进制数据进行编码以及解码的过程。编码和解码是计算机网络通信中的基本操作,尤其是在需要将二进制数据转换成文本数据进行传输时,BASE64...

    Java实现的Base64编码程序

    在Java中实现Base64编码,我们可以使用内置的`java.util.Base64`类,这个类提供了方便的方法来进行Base64的编码和解码。 Base64编码的原理是将每3个字节(24位)的数据分为4组,每组6位。由于ASCII码是7位的,因此6...

    Java Base64编码和解码

    下面我们将详细探讨Java中的Base64编码和解码原理及其实现方式。 Base64编码的基本思想是将每3个字节(24位)的数据转换为4个Base64字符(每个6位)。由于Base64字符集有64个字符,包括大小写字母、数字以及"+"和"/...

    Java基于Base64实现编码解码图片文件

    "Java基于Base64实现编码解码图片文件" Java基于Base64实现编码解码图片文件是Java语言中的一种常见的编码解码实现方式。Base64是一种常用的字符编码,在很多地方都会用到,但它并不是安全领域下的加密解密算法,...

    java-Base64编码

    5. **`javabase64-1.3.1.jar`**: 这是一个第三方库,可能是为了兼容旧版本的Java或者提供额外的功能。第三方库通常包含更丰富的API和功能,比如支持不同的编码风格,或者提供了线程安全的实现等。 6. **`README.txt...

    java自定义实现base64编码转换

    以上内容详细介绍了Java中自定义实现Base64编码转换的方法,包括Base64编码的基本原理、计算机如何表示负数、Java中的位运算以及如何编写一个简单的Base64编码器。理解这些知识点有助于在实际开发中实现数据的编码和...

    java模拟实现base64算法的编码过程

    在Java中,可以使用`java.util.Base64`类库提供的API来实现Base64编码,但如果你希望手动实现这个过程,可以创建一个`Base64Encoder`类,包含上述步骤的函数,例如`encodeBytes(byte[])`。 下面是一个简单的手动...

    java实现base64加密

    在Java中,Base64的实现主要依赖于`java.util.Base64`类,这个类是在Java 8中引入的,提供了一系列的静态方法来完成Base64的编码和解码工作。下面我们将详细探讨如何在Java中实现Base64加密和解密: 1. **Base64...

    用Java实现BASE64加密解密

    总之,Java提供了方便的`java.util.Base64`工具类来处理Base64编码和解码,使得在Java项目中实现Base64加密解密变得简单且高效。这个基础的加密解密机制虽然简单,但在很多场景下已经足够满足基本的数据保护需求。

    java Base64自定义码表

    在Java中,实现Base64编码和解码通常使用`java.util.Base64`类或Apache Commons Codec库中的`Base64`类。标准的Base64编码过程是将每3个字节的数据转换为4个6位的二进制数,然后将这些二进制数映射到编码表中的字符...

    JAVA将图片转换为Base64编码

    下面我们将详细介绍如何使用Java实现图片到Base64编码的转换。 为什么需要Base64编码 在网络传输和数据存储中,图片是一种二进制数据,它们可能会包含一些特殊字符,导致数据传输和存储出现问题。Base64编码可以将...

    android自带base64实现BASE64编码和解码程序完整Java源码

    android 开发中有时会需要用到base64加解密,其实base64并不算是一种加密的算法,只是一种基于64个可打印字符来表示二进制数据的表示方法。 google在android.util下提供了一个Base64工具类,可以很方便的用它encode...

    BASE64编码和解码的JAVA实现

    BASE64编码和解码的JAVA实现。 太简单了。直接调用API实现的。 反正不要分,你们看着下吧。

    java 图片base64 加密解密

    `sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`是Java早期提供的用于Base64编码和解码的类,但请注意,这些类不在标准Java API中,而是属于Sun Microsystems的内部实现,不推荐在新的项目中使用,因为它们可能...

    Java实现图片和Base64之间的相互转化

    在Java编程中,将图片与Base64编码进行相互转换是一项常见的任务,特别是在网络传输、存储和显示图像数据时。Base64是一种用于将任意二进制数据转换为可打印ASCII字符的编码方式,这对于在HTTP协议下传输二进制数据...

    Base64编码jar包

    `javabase64-1.3.1.jar`可能提供了这种编码方式,具体实现取决于库的API。 注意,虽然这里介绍的是`javabase64-1.3.1.jar`库,但Java 8及更高版本已经内置了`java.util.Base64`类,提供了一套标准的Base64编码和...

    Base64编码和解码java版本

    在Java中,Base64编码和解码的功能主要通过`java.util.Base64`这个类来实现,该类在Java 8及以上版本中引入。下面将详细介绍如何使用这个类进行Base64的编码和解码操作。 首先,我们来看Base64编码的过程。编码的...

Global site tag (gtag.js) - Google Analytics