我是靠谱客的博主 野性钢笔,最近开发中收集的这篇文章主要介绍Java -- 使用Base64加密解密字符串及文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

代码中有详细注释,建议粘贴到IDE上运行查看。

主函数:用来测试

public class Demo1 {
public static void main(String[] args) throws Exception{
//使用Base64加密解密普通字符串
// 加密
String base64encodedString = Base64.getEncoder().encodeToString("百度搜索:程序员小哲".getBytes("utf-8"));
System.out.println("加密字符串 :" + base64encodedString);
// 解码
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
System.out.println("原本字符串: " + new String(base64decodedBytes, "utf-8"));
//使用Base64加密解密文件
//Base64Demo.encodeBase64File、Base64Demo.decoderBase64File为自己编写的
//通过Base64Demo.encodeBase64File将文件加密,转化为加密字符串
//参数为文件的地址
String encodeBase64File = Base64Demo.encodeBase64File("D:\音乐\1.wav");
//输出加密后的字符串
System.out.println(encodeBase64File);
//通过Base64Demo.decoderBase64File将文件解密,转化为原文件,保存到电脑指定位置
//参数为加密后的文件字符串
Base64Demo.decoderBase64File(encodeBase64File);
}
}

创建 Base64Demo 类,里面有两个静态方法:encodeBase64File、decoderBase64File

decoderBase64File方法中的生成不重复文件名详细解释点我查看

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Base64Demo {
/**
* 将文件转成base64 字符串
* @param path 文件路径
*/
public static String encodeBase64File(String path) {
try {
//将文件 转换为字符串
File file = new File(path);
FileInputStream inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
inputFile.read(buffer);
inputFile.close();
//返回加密后的字符串
return new BASE64Encoder().encode(buffer);
} catch (Exception e) {
e.printStackTrace();
}
return "ok";
}
/**
* 将base64字符解码保存文件
* @param base64Code 加密的base64
*/
public static String decoderBase64File(String base64Code) {
StringBuffer wavName = new StringBuffer("D:\\音乐\\");
try {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
wavName.append(formatter.format(currentTime));
int num = (int) (Math.random() * (10000 - 1000) + 1000);
wavName.append(num);
wavName.append(".wav");
byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code);
FileOutputStream out = new FileOutputStream(wavName.toString());
out.write(buffer);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return wavName.toString();
}
}

最后

以上就是野性钢笔为你收集整理的Java -- 使用Base64加密解密字符串及文件的全部内容,希望文章能够帮你解决Java -- 使用Base64加密解密字符串及文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部