java base64加解密
接上篇java Base64算法。
根据之前过程使用base64加解密,所以写成了工具类。
代码示例;
public class Base64Util {
private static Logger logger = LoggerFactory.getLogger(Base64Util.class);
/**
* @param
* @return String
* @description BASE64解码
*/
public static byte[] decode(String s) {
if (StringUtils.isEmpty(s)) {
return null;
}
BASE64Decoder decoder = new BASE64Decoder();
try {
return decoder.decodeBuffer(s);
} catch (Exception e) {
return null;
}
}
/**
* @param
* @return String
* @description base64编码
*/
public static String encode(byte[] s) {
if (s == null) {
return null;
}
return (new sun.misc.BASE64Encoder()).encode(s);
}
/**
* @param filePath
* @param base64Str
*/
public static void base64ToFile(String base64Str,String filePath) {
System.err.println(base64Str.length());
try {
byte[] b = Base64.decode(base64Str);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
FileUtils.writeByteArrayToFile(new File(filePath), b);
/**
* 生成缩略图
* 若图片横比200小,高比300小,不变
* 若图片横比200小,高比300大,高缩小到300,图片比例不变
* 若图片横比200大,高比300小,横缩小到200,图片比例不变
* 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300
*/
System.err.println("OK");
} catch (Exception e) {
System.out.println("error");
}
}
/**
* @param outFilePath 输出文件的地址
* @param file 需要输出的文件
*/
public static void saveMultipartFileToFile(MultipartFile file, String outFilePath) throws BusinessException, IOException {
FileOutputStream os = new FileOutputStream(outFilePath);
try {
byte[] data =file.getBytes();
for (int i = 0; i < data.length; ++i) {
if (data[i] < 0) {// 调整异常数据
data[i] += 256;
}
}
os.write(data);
os.close();
} catch (Exception e) {
throw new BusinessException("图片转换失败");
}finally {
os.flush();
os.close();
}
}
/**
* base64 转 Multipart
* @param base64
* @return
*/
public static MultipartFile base64ToMultipart(String base64) {
try {
String[] baseStr = base64.split(",");
BASE64Decoder decoder = new BASE64Decoder();
byte[] b = new byte[0];
b = decoder.decodeBuffer(baseStr[1]);
for(int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
return new BASE64DecodedMultipartFile(b, baseStr[0]);
} catch (IOException e) {
logger.error(e.getMessage());
return null;
} catch (ArrayIndexOutOfBoundsException a){
logger.error(a.getMessage());
return null;
}
}
}
java base64加解密的更多相关文章
- Java Base64 加解密
public class base64EncryAndDecry { public static final String CODES = "ABCDEFGHIJKLMNOPQRSTUVWX ...
- Java Des加解密方法(c#加密Java解密)
最近我们用Java把一个用.net编写的老系统重新做了翻版,但是登录还是用.net的登录.这样就会遇到一个比较棘手的问题,我们登录用的cookie信息都是.net用des加密的,但我们不得不用Java ...
- QuickBase64 - Android 下拉通知栏快捷base64加解密工具
Android Quick Setting Tile Base64 Encode/Decode Tool Android 下拉通知栏快捷 base64 加解密,自动将剪切板的内容进行 base64 E ...
- JAVA加解密 -- Base64加解密
Base64算法实现:可以将任意的字节数组数据,通过算法,生成只有(大小写英文.数字.+./)(一共64个字符)内容表示的字符串数据. private static final String str ...
- java之BASE64加解密
1.简介 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到. 注:位于jdk的java.util包中. 2. ...
- 两种JavaScript的AES加密方式(可与Java相互加解密)
由于JavaScript属于弱类型脚本语言,因此当其与强类型的后台语言进行数据交互时会产生各种问题,特别是加解密的操作.本人由于工作中遇到用js与Java进行相互加解密的问题,在网上查了很多资料及代码 ...
- java RSA加解密以及用途
在公司当前版本的中间件通信框架中,为了防止非授权第三方和到期客户端的连接,我们通过AES和RSA两种方式的加解密策略进行认证.对于非对称RSA加解密,因为其性能耗费较大,一般仅用于认证连接,不会用于每 ...
- DES 算法的 C++ 与 JAVA 互相加解密
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- password学3——Java BASE64加密解密
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之中的一个,大家能够查看RFC2045-RFC2049.上面有MIME的具体规范.Base64编码可用于在HTTP环境下传递较长的标识信息 ...
随机推荐
- python接口自动化测试--批量读取数据
为了便于维护,python接口自动化测试用例可以利用xlrd模块读取excal表格进行数据分离.我们可以利用xlrd模块的row_values()和cell_value()两种方法读取Excal表格. ...
- A*算法的有关知识--例子:最短路径问题
前置知识 定义1,g(n)=从树根到节点n的代价.当算法处理到某个节点时,g(n)是可以精确计算的. 定义2,h*(n)=从节点n到目标节点的优化路径的代价.一般不可知. 定义3,f*(n)=g(n) ...
- PHP百度地图开发之距离计算的实例分享
/** * 计算两个坐标之间的距离(米) * @param float $fP1Lat 起点(纬度) * @param float $fP1Lon 起点(经度) * @param float $fP2 ...
- C语言经典100例-ex002
系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...
- Java并发(一):线程
目录 一.什么是线程 二.中断线程 三.线程状态 四.线程属性 前言: 本文将简单的介绍JAVA并发中的线程. 操作系统的多任务(multitasking):计算机在同一刻运行多个程序的能力,即并发. ...
- Ubuntu 18.04 Tomcat 安装及配置
转载自:https://blog.csdn.net/weixx3/article/details/80808484 1.下载Tomcat 8.5.31到Apache Tomcat官网,选择tar.gz ...
- python风格代码荟萃
今天总结一下在python中常用的一些风格代码,这些可能大家都会用,但有时可能也会忘记,在这里总结,工大家参考~~~ 先点赞在看,养成习惯~~~ 标题遍历一个范围内的数字 for i in xrang ...
- Layui弹出层详解
今天空了学习一下弹出层 还是一步步展示把 首先,layer可以独立使用,也可以通过Layui模块化使用.我个人一直是用的模块化的 所以下面素有的都是基于模块化的. 引入好相关文件就可以开始啦 今天放 ...
- 【实战分享】从选型到项目落地,漫谈 gRPC
什么是 gRPC? gRPC 的几种常见模式 在学习 gRPC 的时候,相信大家对于它的四种模式都有了解,我们来简单回顾一下: 简单模式(Simple RPC):这种模式最为传统,即客户端发起一次请求 ...
- Spider_基础总结2_Request+Beautifulsoup解析HTML
静态网页 抓取实例: import requests from bs4 import BeautifulSoup def gettop250(): headers={ 'user-agent':'Mo ...