package com.zykj.zycxapplet.utils;import java.io.*;/*** <p>* BASE64编码解码工具包* </p>* <p>* 依赖javabase64-1.3.1.jar* </p>* * @author IceWee* @date 2012-5-19* @version 1.0*/
public class Base64Utils {/*** 文件读取缓冲区大小*/private static final int CACHE_SIZE = 1024;/*** <p>* BASE64字符串解码为二进制数据* </p>* * @param base64* @return* @throws Exception*/public static byte[] decode(String base64) throws Exception {return Base64.decode(base64);}/*** <p>* 二进制数据编码为BASE64字符串* </p>* * @param bytes* @return* @throws Exception*/public static String encode(byte[] bytes) throws Exception {return new String(Base64.encode(bytes));}/*** <p>* 将文件编码为BASE64字符串* </p>* <p>* 大文件慎用,可能会导致内存溢出* </p>* * @param filePath 文件绝对路径* @return* @throws Exception*/public static String encodeFile(String filePath) throws Exception {byte[] bytes = fileToByte(filePath);return encode(bytes);}/*** <p>* BASE64字符串转回文件* </p>* * @param filePath 文件绝对路径* @param base64 编码字符串* @throws Exception*/public static void decodeToFile(String filePath, String base64) throws Exception {byte[] bytes = decode(base64);byteArrayToFile(bytes, filePath);}/*** <p>* 文件转换为二进制数组* </p>* * @param filePath 文件路径* @return* @throws Exception*/public static byte[] fileToByte(String filePath) throws Exception {byte[] data = new byte[0];File file = new File(filePath);if (file.exists()) {FileInputStream in = new FileInputStream(file);ByteArrayOutputStream out = new ByteArrayOutputStream(2048);byte[] cache = new byte[CACHE_SIZE];int nRead = 0;while ((nRead = in.read(cache)) != -1) {out.write(cache, 0, nRead);out.flush();}out.close();in.close();data = out.toByteArray();}return data;}/*** <p>* 二进制数据写文件* </p>* * @param bytes 二进制数据* @param filePath 文件生成目录*/public static void byteArrayToFile(byte[] bytes, String filePath) throws Exception {InputStream in = new ByteArrayInputStream(bytes);   File destFile = new File(filePath);if (!destFile.getParentFile().exists()) {destFile.getParentFile().mkdirs();}destFile.createNewFile();OutputStream out = new FileOutputStream(destFile);byte[] cache = new byte[CACHE_SIZE];int nRead = 0;while ((nRead = in.read(cache)) != -1) {   out.write(cache, 0, nRead);out.flush();}out.close();in.close();}}

Base64加密工具类 - Base64Utils相关推荐

  1. Java 开发中常用的 4 种加密方法。MD5加密工具类测试 base64加密工具类测试 SHA加密工具类测试 BCrypt加密工具类测试

    一.工具类 1, md5加密工具类 2, base64加密工具类 3, Bcrypt工具类 二.加密测试 MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试 一.工具类 1, ...

  2. Base64加密工具类

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法. Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较 ...

  3. 加密工具类 - CryptoUtils.java

    加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载  - CryptoUtils.java.commons-io-2.4.jar.commons-code ...

  4. App开发流程之加密工具类

    从这篇记录开始,记录的都算是干货了,都是一些编程日常的积累. 我建议先将基础的工具加入项目,后续的开发效率会呈指数增长.如果在专注功能开发过程中,才发现缺少大量常用的工具,不仅会打断思路,还会拖慢开发 ...

  5. Java加密工具类EncryptUtils

    Java 提供了一些常见的加密算法,如 MD5.SHA.AES.DES,现将这些实现方法放进加密工具类 EncryptionUtils 使用了 String.format() 来确保每个字节都能够正确 ...

  6. 一、java项目常用工具类之加密工具类

    项目环境: jdk1.8+spring4.3.12 一.问题描述及试用场景: 在项目规范中,有时需要对一些数据进行加密解密,常见的就是前后端加密参数在网络上传输.一方面,数据在网络上是以加密的方式传输 ...

  7. 【Java工具类】(30)—DES加密工具类

    Java工具类(30)-DES加密工具类 package com.awifi.cloudnative.container.manage.provider.utils;import org.apache ...

  8. java 在线rsa解密_通用的Java RSA加密工具类,可在线验证通过

    /** * RSA加密工具类 * 使用PKCS1_PADDING填充,密钥长度1024 * 加解密结果在这里测试通过:http://tool.chacuo.net/cryptrsaprikey * 注 ...

  9. java在线支付---04_编写易宝支付的客户端加密工具类

    2013/5/30 04_编写易宝支付的客户端加密工具类 创梦综合技术qq交流群:CreDream:251572072 ---------------------------------------- ...

最新文章

  1. 展开被 SpringBoot 玩的日子 《 二 》 WEB 开发
  2. 用Eclipse开发PHP项目
  3. Sublime Text3怎样在Deepin中配置CTags插件
  4. Redis中7种集合类型应用场景
  5. Hello Blazor:(8)启用深色模式
  6. 开源公司被云厂商“寄生”,咋整?
  7. 顶岗实习周记java方向_JAVA软件开发——顶岗实习周记25篇.doc
  8. 12满秩分解与奇异值分解(1)
  9. java 电子书下载
  10. matlab 等字符数 输出,Matlab 输入输出函数整理
  11. 转发:已经足够好用的IDEA社区版
  12. OpenCV IPLImage常用方法
  13. 从零开始掌握微服务软件测试
  14. linux centos7 关于Python模拟浏览器踩坑(转载)
  15. hdu 1757【A Simple Math Problem】
  16. 记录微信小程序web-view页面分享出去之后没有返回首页按钮,微信小程序WebView页面分享出去后没有返回首页按钮,全局使用的自定义导航【解决办法】
  17. 什么是蜘蛛统计 有什么作用?
  18. Java动态代理原理分析
  19. 高性能mysql学习笔记--高级特性
  20. 雷军把小米发布会开到华为门口,发布了安卓版iPhone X

热门文章

  1. ai透视按键_透视人工智能
  2. 14. Python 与数据库那点事儿,滚雪球学 Python
  3. 这几个音乐伴奏提取的方法快码住了
  4. 2021 七大IT高薪认证,你都get了吗?
  5. CoreException: Could not get the value for parameter
  6. java 2 22 222_java程序计算2+22+222+...问题完美答案
  7. LabVIEW谨慎使用局部变量和全局变量
  8. 积木机器人拼装图恐龙图纸_乐高10698恐龙拼装图纸 | 手游网游页游攻略大全
  9. MultiDex的加载dex源码分析
  10. 【渝粤题库】国家开放大学2021春2202公共行政学题目