`
noknower
  • 浏览: 120119 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

base64的实现过程

    博客分类:
  • JAVA
阅读更多
base64的实现过程:
由a-z,A-Z,0-9,/,+开头组成,三位一组,不足补“=”。
例如"men":
先转成US-ASCII值.
"m"十进制 109
"e"十进制 101
"n"十进制 110
二进制 :
m 01101101
e 01100101
n 01101110
三个8位连起来是24位
011011010110010101101110
然后分成4个6位
011011 010110 010101 101110
现在得到4个值,十进制为
27 22 21 46
对应的 Base64 字符是 :
b W V u
编码总是基于3个字符,从而产生4个Base64字符。
假如只剩1或2个字符,使用非凡字符"="补齐Base64的4字。
如,编码"me"
01101101 01100101
0110110101100101
011011 010110 0101
111111 (与,补足6位)
011011 010110 010100
b W U
b W U = ("=" 补足4字符)
于是 "bWU=" 就是"me"的Base64值.
package com.ibm.bgs.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Base64 {




/**
  * base64 to img
  * @param strBase64
  * @param strPath
  * @return
  */
public static boolean getImgFromBase64(String strBase64,String strPath){
  if(strBase64 == null)return false;
  BASE64Decoder based = new BASE64Decoder();
  try {
   byte[] b =  based.decodeBuffer(strBase64);
   for (int i = 0; i < b.length; i++) {
    if(b[i] < 0){
     b[i]+=256;
    }
   }
  OutputStream out = new FileOutputStream(strPath); 
  out.write(b);
  out.flush();
  out.close();
  return true;
  } catch (IOException e) {
   e.printStackTrace();
   return false;
  }
}



/**
  * img to base64
  * @param strPath
  * @return
  */
public static String getBase64Img(String strPath){
  byte[] b =null;
  FileInputStream in =null;
  if(strPath == null) return null;
  try {
      in = new FileInputStream(strPath);
   b = new byte[in.available()];
   in.read(b);
   in.close();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  BASE64Encoder basee = new BASE64Encoder();
  return basee.encode(b);
}



/**
  * 
  * String to BASE64
  * @param str
  * @return
  */
public static String getBASE64(String str){
  String strBASE64Code = "" ;
  if(str == null) return null;
  BASE64Encoder base64 = new BASE64Encoder();
  strBASE64Code = base64.encode(str.getBytes());
  return strBASE64Code; 
}

/**
  * BASE64 to String
  * @param strBASE64
  * @return
  */
public static String getFromBASE64(String strBASE64){
  String strString = "" ;
  if(strBASE64 == null)return null;
  BASE64Decoder based = new BASE64Decoder();
  try {
   byte[] b = based.decodeBuffer(strBASE64);
   strString = new String(b);
   return strString;
  } catch (IOException e) {
   e.printStackTrace();
   return null;
  }
}

/**
  * BASE64 to byte
  * @param strBASE64
  * @return
  */
public static String getByteFromBASE64(String strBASE64){
  String strString = "" ;
  if(strBASE64 == null)return null;
  BASE64Decoder based = new BASE64Decoder();
  try {
   byte[] b = based.decodeBuffer(strBASE64);
   for (int i = 0; i < b.length; i++) {
    System.out.println(b[i]+":"+Integer.toBinaryString(b[i]));
    
    
    
   }
   
   return strString;
  } catch (IOException e) {
   e.printStackTrace();
   return null;
  }
  
}


public static void main(String[] args) {
/*    String strTest = "罗金川";
    String strBase = getBASE64(strTest);
    System.out.println(">>>>:"+strBase);*/
    
    
    
/*    String strBase = "wt698LSox+HH4cfJx8nH4cfhx8nHycfhx+HHycfJx+HH4cfJx8k=";
    String strStr = getFromBASE64(strBase);
    System.out.println(">>>>:"+strStr);*/

    String strBase = "wt698LSo";
    String strStr = getByteFromBASE64(strBase);
    //System.out.println(">>>>:"+strStr);  
  
  
    
/*    String strPath = "d:\\test.bmp";
    String strStr = getBase64Img(strPath);
    System.out.println(strStr); */   
    
  /*  String strBase64="Qk3uCwAAAAAAADYAAAAoAAAAYwAAAA8AAAABABAAAAAAALgLAAAAAAAAAAAAAAAAAAAAAAAA/3//" +
        "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
        "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
        "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
        "/3//f/9//3//f/9//3//f/9//3//f/9/AAD/f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
        "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
        "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
        "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//38AAP9/" +
        "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
        "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
        "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
        "f/9//3//f/9//3//f/9//3//f/9//3//fwAA/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
        "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
        "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
      "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//fwAA/3//f/9//3//f/9//3//f/9/AAAK" +
      "PAo8CjwKPAo8/3//f/9//38KPAo8CjwKPP9//3//f/9//38KPAo8Cjz/f/9//3//fwo8CjwKPAo8" +
      "CjwKPP9/CjwKPAo8CjwKPP9//38KPAo8Cjz/f/9/CjwKPAo8/3//f/9//3//f/9//3//f/9//3//" +
      "fwo8CjwKPP9//3//fwo8CjwKPAo8Cjz/f/9//3//fwo8CjwKPAo8CjwKPP9//38KPAo8CjwKPP9/" +
      "/3//f/9/AAAAAP9//3//f/9//3//f/9//38AAP9/CjwKPP9//3//f/9//38KPAo8/3//f/9/Cjz/" +
      "f/9//38KPAo8/3//fwo8/3//fwo8Cjz/f/9/CjwKPP9//3//fwo8Cjz/f/9//3//f/9/CjwKPP9/" +
      "/38KPAo8/3//f/9//3//f/9//3//f/9//3//fwo8Cjz/f/9/Cjz/f/9//38KPAo8/3//f/9//3//" +
      "fwo8Cjz/f/9/CjwKPP9//38KPAo8/3//f/9/Cjz/f/9//3//fwAAAAD/f/9//3//f/9//3//fwAA" +
      "/38KPAo8/3//f/9//3//fwo8Cjz/f/9//3//f/9//3//fwo8Cjz/f/9//3//f/9/CjwKPP9//38K" +
      "PAo8/3//f/9/CjwKPP9//3//f/9//38KPAo8/3//fwo8Cjz/f/9//3//f/9//3//f/9//3//f/9/" +
      "CjwKPP9//3//f/9//3//fwo8Cjz/f/9//3//f/9/CjwKPP9//38KPAo8/3//fwo8Cjz/f/9//3//" +
      "f/9//3//f/9//3//f/9//3//f/9//3//f/9/AAD/fwo8Cjz/f/9//3//f/9/CjwKPAo8CjwKPAo8" +
      "/3//f/9/CjwKPP9//3//f/9//38KPAo8/3//fwo8Cjz/f/9//38KPAo8/3//f/9//3//fwo8Cjz/" +
      "f/9/CjwKPP9//3//f/9//3//f/9//3//f/9//38KPAo8/3//f/9//3//f/9/CjwKPP9//3//f/9/" +
      "/38KPAo8/3//fwo8Cjz/f/9/CjwKPAo8CjwKPAo8/3//f/9//3//f/9//3//f/9//3//f/9//38A" +
      "AP9/CjwKPAo8/38KPP9//38KPAo8/3//fwo8Cjz/f/9//38KPAo8/3//f/9//3//fwo8Cjz/f/9/" +
      "CjwKPP9//3//fwo8CjwKPP9/Cjz/f/9/CjwKPP9//38KPAo8/3//f/9//3//f/9//3//f/9//3//" +
      "fwo8Cjz/f/9//3//f/9//38KPAo8Cjz/fwo8/3//fwo8Cjz/f/9/CjwKPP9//38KPAo8/3//fwo8" +
      "Cjz/f/9//3//fwAAAAD/f/9//3//f/9//3//fwAACjwKPAo8/38KPAo8/3//f/9/CjwKPAo8Cjz/" +
      "f/9//38KPAo8CjwKPAo8/3//fwo8CjwKPP9/CjwKPAo8/3//fwo8CjwKPP9/CjwKPP9/CjwKPAo8" +
      "CjwKPAo8/3//f/9//3//f/9//3//f/9//3//fwo8CjwKPAo8Cjz/f/9//38KPAo8Cjz/fwo8Cjz/" +
      "fwo8CjwKPP9/CjwKPAo8/3//f/9/CjwKPAo8Cjz/f/9//3//f/9/AAAAAP9//3//f/9//3//f/9/" +
      "AAD/f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/CjwKPP9//3//f/9//3//f/9//3//" +
      "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
      "/38KPAo8/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
      "f/9//3//f/9//3//f/9//3//f/9//3//f/9//38AAP9//3//f/9//3//f/9//3//f/9//3//f/9/" +
      "/3//f/9//38KPAo8/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
      "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//fwo8Cjz/f/9//3//f/9//3//f/9//3//f/9/" +
      "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
      "fwAA/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
      "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
      "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
      "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/AAD/f/9//3//f/9//3//f/9//3//f/9//3//" +
      "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
      "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
      "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
      "/38AAP9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
      "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/" +
      "/3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//" +
      "f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//fwAA";
    String strPath = "d:\\test1.bmp";
    getImgFromBase64(strBase64,strPath);*/ 
    
   } 
}

分享到:
评论

相关推荐

    Base64实现代码

    在Java中,实现Base64编解码主要依赖于`java.util.Base64`类,这个类从Java 8开始被引入,提供了丰富的编码和解码功能。以下是一份简单的Base64编码和解码的Java代码示例: ```java import java.util.Base64; ...

    android用base64实现文件与string相互转换

    本篇文章将详细介绍如何在Android中使用Base64来实现文件与String之间的相互转换。 一、Base64编码原理 Base64是一种基于64个字符的编码方法,这些字符包括大小写字母、数字以及"+"和"/",还有一个用于填充的字符"=...

    pb9_base64_pb调用base64.dll_PB9base64_Base64.dll_glass8y6_pbbase64

    标题中的"pb9_base64_pb调用base64.dll_PB9base64_Base64.dll_glass8y6_pbbase64"涉及到的是PowerBuilder 9(简称PB9)中关于Base64编码的实现。Base64是一种用于在网络上传输二进制数据的编码方式,它将二进制数据...

    base64 加解码 base64转hex Base64转图片 图片转Base64工具,比网上其它的方便好用,支持大于1M内容

    6. **图片转Base64**:相反的过程,将本地图片文件读取并转换成Base64字符串,便于在网页或应用程序中内嵌图片,特别是在不需要服务器存储或传输原始图片文件的情况下。 7. **支持大于1M内容**:许多在线工具可能对...

    labview 图片缩放 base64编码base64解码

    在LabVIEW中,可以使用字符串函数来实现Base64编码。首先,你需要将图像数据转换为字节串,然后使用Base64编码函数将字节串转换为可读的字符串。这样,图片数据就可以以文本形式在网络上传输,或保存在文本文件中。 ...

    Base64实现原理,Base64文件加密

    ### Base64编码过程 1. **分组处理**:首先,Base64编码将输入的二进制数据按照每3个字节(24位)进行分组。如果输入数据不是3的倍数,会在末尾补足0字节,使得最后的字节数能够被3整除。 2. **6位转换**:接下来...

    Base64转二进制文件,Base64 To File

    提供的文件列表中,`Base64_Convert.exe`很可能是一个执行程序,用于实现这个功能,即读取包含Base64编码的文本文件(如`Base64转二进制文件.b64`),并将其转换为二进制文件。`Base64转二进制文件.docx`和`Base64转...

    base64编解码C/C++实现

    Base64是一种网络上常见的数据编码方式,它将任意二进制数据...通过阅读和理解`base64.cpp`和`base64.h`文件,可以深入学习Base64编码解码的具体实现,这对于理解网络通信、数据加密以及文件编码等领域都非常有帮助。

    VB JPG转base64和base64转JPG.rar

    在VB6.0版本中,我们可以实现Base64与图片格式(如JPG)之间的转换。这个“VB JPG转base64和base64转JPG.rar”压缩包文件包含的可能是两个VB程序,分别用于将JPG图片编码为Base64字符串和将Base64字符串解码回JPG...

    Base64引入包

    如果你使用的是Apache Commons Codec库,引入依赖后,Base64编码可以这样实现: ```java import org.apache.commons.codec.binary.Base64; public class Base64Example { public static void main(String[] args)...

    python将图片转base64,实现前端显示

    1. 图片转换为Base64编码:在Python中,可以通过内置的base64库轻松实现这个过程。首先,需要导入base64模块,然后使用open函数以二进制读取模式打开目标图片文件,之后使用base64.b64encode方法对图片内容进行编码...

    实现base64编码工具类及整套jar.zip_Base64.jar_base64 jar_jar base64_工具类及整套j

    在这个主题中,我们将深入探讨如何实现一个Base64编码工具类以及与之相关的Java JAR文件。 首先,Base64编码的基本原理是将每3个字节(24位)的数据转化为4个6位的ASCII字符。由于24不能被6整除,所以对于不足的...

    BASE64Encoder及BASE64Decoder的源码

    Base64Encoder和Base64Decoder是处理这种编码和解码过程的工具。本文将深入探讨这两个概念,以及它们在Java等编程语言中的实现。 Base64的基本原理是将每3个字节(24位)的数据拆分为4个6位的块,并将每个6位块转换...

    BASE64图片解码_解码_vba图片base64_base64_VBa_图片_

    在这个过程中,文件`2.txt`可能包含了示例的BASE64编码字符串,而`BASE64解码.xls`可能是包含VBA宏的Excel工作簿,用于演示或执行这些解码和显示图片的步骤。在实际项目中,你可能需要根据具体需求调整和扩展这些...

    C# 文件转换base64

    下面我们将详细探讨C#中如何实现文件到Base64的转换,以及这个过程涉及的相关知识点。 首先,我们需要理解Base64编码的基本原理。Base64编码将每3个字节的二进制数据转换为4个字符的ASCII字符串,每个字符对应一个...

    VC++6.0使用base64编解码转图片

    在本项目"VC++6.0使用base64编解码转图片"中,我们将探讨如何在Visual C++ 6.0环境下实现Base64编码和解码,并将其应用于图片处理。 首先,Base64编码的基本原理是将每3个8位字节(24位)的数据转换为4个6位字节...

    C语言实现base64

    在提供的压缩包文件中,"base64.c"或"base64.h"这样的文件很可能包含了实现Base64编码和解码功能的源代码。这些代码可能包含了一些关键函数,例如`base64_encode`和`base64_decode`,它们分别负责编码和解码的过程。...

    BASE64Encoder 与 BASE64Decoder 源代码

    BASE64编码和解码在Java中通过`BASE64Encoder`和`BASE64Decoder`(或`android.util.Base64`)实现,它们在数据传输和存储中起着至关重要的作用,尤其是当需要在不支持二进制数据的环境中处理二进制数据时。...

    Base64 C 实现源码

    在这个"Base64 C 实现源码"中,我们有两个关键文件:CBase64.h和CBase64.cpp。这两个文件一起构成了一个C语言实现的Base64编码和解码库。CBase64.h包含了函数声明,而CBase64.cpp则实现了这些函数的代码。 首先,`...

    Android图片的Base64编码与解码及解码Base64图片方法

    在Android中,我们可以使用`Base64`类来实现图片的编码: ```java public void encodeImage(Bitmap bitmap) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap....

Global site tag (gtag.js) - Google Analytics