java使用Base64实现文件加密解密
时间:2021-03-22 09:10:58|栏目:JAVA代码|点击: 次
本文实例为大家分享了Java实现Base64给文件加密、解密的具体代码,供大家参考,具体内容如下
package test.base64;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* 服务器之间传递图片
*/
public class TestCase {
public static void main(String[] args) {
// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
String strImg = GetImageStr();
System.out.println(strImg);
// 对字节数组字符串进行Base64解码并生成图片
GenerateImage(strImg);
}
public static String GetImageStr() {
String imgFile = "d:\\java.pdf";// 待处理的图片
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
try {
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);// 返回Base64编码过的字节数组字符串
}
public static boolean GenerateImage(String imgStr) {
if (imgStr == null){ // 图像数据为空
return false;
}
BASE64Decoder decoder = new BASE64Decoder();
try {
// Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpg图片
String imgFilePath = "d:\\new.pdf"; // 新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
}
小编另分享一段java代码实现对文件的base64加密解密
Base64编码方法:将每三个8bit的字节转换为四个6bit的字节,其中,转换之后的这四个字节中每6个有效Bbit为有效数据,空余的那2个用0补上成为一个字节,java中可直接调用算法进行base64加密解密。
public class base64 {
public static void main(String[] args){
File file = new File("D:\\base64.txt");
String result = getFromBase64(file2String(file));
System.out.println(result);
}
//文件转字符串
public static String file2String(File file){
try {
BufferedReader buffer = new BufferedReader(new FileReader(file));
StringBuilder sb = new StringBuilder();
String temp;
while((temp = buffer.readLine()) !=null ){
sb.append(temp);
}
return sb.toString();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
//加密
public static String getBase64(String str){
byte[] b = null;
String s = null;
try {
b = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if( b != null){
s = new BASE64Encoder().encode(b);
}
return s;
}
//解密
public static String getFromBase64(String str){
byte[] b = null;
String result = null;
if(str != null){
BASE64Decoder decoder = new BASE64Decoder();
try {
b = decoder.decodeBuffer(str);
result = new String(b, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
}
}
上一篇:java 中设计模式之单例
栏 目:JAVA代码
本文标题:java使用Base64实现文件加密解密
本文地址:http://www.codeinn.net/misctech/85995.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




