package com.way.base64;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.junit.Test;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* 目的:将公司的logo图片用base64弄后弄成xml传给客户端。
* 目前的功能:将图片转成byte字节后加密
* @author way
*
*/
public class BASE64Coding {
/**
* 测试成功的做法
*/
@Test
public void encodImageByByte(){
File src = new File("./user.gif");
File dest = new File("./test.gif");
try {
InputStream inputStream = new FileInputStream(src);
OutputStream outputStream = new FileOutputStream(dest);
BASE64Encoder base64Encoder = new sun.misc.BASE64Encoder();
BASE64Decoder base64Decoder = new sun.misc.BASE64Decoder();
byte[] b = new byte[new Long(src.length()).intValue()];
inputStream.read(b);
inputStream.close();
String encode = base64Encoder.encode(b);
byte[] decode = base64Decoder.decodeBuffer(encode);
outputStream.write(decode);
outputStream.flush();
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 最开始的做法 (未成功)
* 1 流:与成功的做法不同,不是一次性全读,但是未成功???将byte[]容量扩大
* 2 String 与byte[]之间转化要加上charSet,并且这里必须是iso-8859-1???
* 3 最后进行write时仍然是不能成功???
*/
@Test
public void encodeImage(){
File src = new File("./user.gif");
File dest = new File("./test.gif");
try {
InputStream inputStream = new FileInputStream(src);
OutputStream outputStream = new FileOutputStream(dest);
String collectB = null;
// StringBuilder builder = new StringBuilder();//未成功
// byte[] b = new byte[1024];
// byte[] b = new byte[new Long(src.length()).intValue()];//成功
byte[] b = new byte[20000];//成功
int i=0;
while((i=inputStream.read(b)) != -1){
System.out.println(i);
collectB = new String(b,0,i,"ISO-8859-1");
}
System.out.println(collectB.getBytes("ISO-8859-1").length);
outputStream.write(collectB.getBytes("ISO-8859-1"));
outputStream.flush();
outputStream.close();
inputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
在Java编程中,图片Base64加密解密是一种常见的数据处理技术,特别是在网络传输和存储时,由于Base64编码可以将二进制数据转换为可打印的ASCII字符,因此非常适用。`sun.misc.BASE64Encoder`和`sun.misc.BASE64...
在这个"Base64加密图片.rar"的压缩包中,我们关注的是如何在C#编程环境下对图片进行Base64编码和解码,以及与文本之间的转换。 首先,我们要理解Base64编码的原理。Base64使用64个字符(A-Z, a-z, 0-9, + 和 /)来...
jmeter 实现图片base64 加密 Base64Data.jar
VB图片加密技术实例:将图片转换了Base64格式字符,任意图像转换为Base64文本,支持的图片文件格式|*.gif; *.jpg; *.jpeg; *.jpe; *.bmp; *.png; *.tif; *.tiff。如果有Base64文件查看程序,你可输入这段转换后的...
在微信小程序中,当需要在网络上传输非ASCII字符,例如图片或PDF等二进制文件时,通常会先将其转化为Base64字符串。Base64编码将每3个字节的数据转换成4个可打印字符,这样可以保证数据在传输过程中不被破坏。在微信...
在C#编程环境中,Base64的加密和解密操作是非常基础且实用的功能,特别是在处理如图片、证书等二进制文件时。以下是对Base64加密解密的详细讲解以及如何在C# WinForm应用中实现。 首先,理解Base64的基本原理。Base...
- **电子邮件**: BASE64常用于在电子邮件正文中嵌入图片或其他二进制数据,因为电子邮件标准只支持ASCII字符。 - **HTTP头信息**: HTTP协议的头字段不支持二进制数据,所以对二进制数据进行BASE64编码是必要的。 - *...
BASE64是一种常见的数据编码方式,它将二进制数据转换为可打印的ASCII字符,常用于在网络上传输包含二进制的数据,如图片或文件。 在PowerBuilder中,开发者可以创建DLL(动态链接库)来封装特定的功能,如加密和...
在这个场景中,标题和描述提到了使用VB(Visual Basic)和C#两种编程语言来实现图片和文字的加密与解密,并结合了Base64编码技术。下面我们将详细探讨这些知识点。 1. **Visual Basic (VB)**:VB是Microsoft开发的...
2. 图片嵌入:在HTML或XML文档中,Base64编码可以将图片数据直接嵌入到文档内,减少HTTP请求。 3. API数据传输:某些API可能要求数据以纯文本格式发送,Base64可以用于编码二进制数据。 在给定的压缩包文件"Base64...
LabVIEW实现Base64加密解密程序源码,可以作为子VI直接调用,非常方便,经过测试没有问题。base64是一种用64个字符来表示任意二进制数据的方法。base 64编码可以将任意一组字节转换为较长的常见文本字符序列,从而...
在JavaScript中实现Base64加密,主要是为了将任意数据转化为一个可安全通过这些协议传输的字符串形式。下面我们将深入探讨Base64编码原理以及如何在JavaScript中实现它。 Base64编码的原理是将每3个字节(24位)的...
本文将深入探讨PowerBuilder中的字符进制数转换以及Base64加密和解密。这些技术在软件开发中有着广泛的应用,例如在网络通信、数据存储和隐私保护等方面。 1. **字符型十六进制数转为十进制数值** 在PowerBuilder...
本示例主要涉及的是如何将图片通过BASE64编码加密后存入数据库的Blob类型字段,并能从数据库中取出这些数据再还原成原始图片。以下是相关知识点的详细说明: 1. **BASE64编码**:BASE64是一种用于将二进制数据转换...
Base64是一种基于64个可打印字符的编码方法,常用于在网络上传输二进制数据,如图片或文件。在Java中,我们可以使用内置的`java.util.Base64`类来轻松实现Base64的加密和解密操作。以下将详细讲解这个过程。 首先,...
在VC++(Visual C++)编程中,实现Base64的加密和解密功能是常见的需求,特别是在处理如图片、文件或敏感数据时。下面将详细讲解VC++中Base64编码与解码的原理和实现方法。 Base64编码原理: 1. 将每3个字节(24位...
BASE64是一种编码方式,它将任意二进制数据转化为ASCII字符集中的可打印字符,常用于在网络上传输包含二进制的数据,如图片、音频或视频文件。在C#中,我们可以使用内置的`System.Convert`类来实现BASE64的加密和...
在实际应用中,Base64通常用作一种简单的加密手段,例如在HTTP头中传输认证信息(如Basic Auth),或者在邮件中嵌入图片等非文本内容。但需要注意的是,Base64并不是一种安全的加密方法,因为它仅是对数据进行了编码...
Base64编码广泛应用于多种场景,如在网络上传输图片、证书、JSON Web Tokens(JWT)等,也常用于密码学领域,如在SSL/TLS协议中对密钥进行编码。尽管Base64不是一种加密方法,因为它可以被轻易地解码,但在某些情况...
在实际开发中,Base64加密常用于将二进制数据,如图片、证书或密钥等,转换为可以在文本格式(如JSON或XML)中安全传输的字符串。虽然Base64不是一种安全的加密算法,因为它可以被轻易解码,但它在数据传输中的主要...