java-base64
1.encode
public static String encode(byte[] bValue, String encode) {
ByteArrayOutputStream o = new ByteArrayOutputStream();
byte d[] = new byte[];
try {
int count = ;
for(byte x[] = bValue; count < x.length;) {
byte c = x[count];
count++;
d[] = (byte) ((c & 0xfc) >> );
d[] = (byte) ((c & ) << );
if(count < x.length) {
c = x[count];
count++;
d[] = (byte) (d[] + (byte) ((c & 0xf0) >> ));
d[] = (byte) ((c & 0xf) << );
if(count < x.length) {
c = x[count];
count++;
d[] = (byte) (d[] + ((c & 0xc0) >> ));
d[] = (byte) (c & 0x3f);
}
else {
d[] = ;
}
}
else {
d[] = ;
d[] = ;
}
int n = ;
while(n <= ) {
o.write(strTableBase64.charAt(d[n]));
n++;
}
}
}
catch(StringIndexOutOfBoundsException e) {
logger.error(e.toString());
}
String temp = null;
if(o != null){
try {
temp = new String(o.toByteArray(), encode);
} catch (UnsupportedEncodingException e1) {
logger.error(e1.toString(), e1);
}
try {
o.close();
} catch (IOException e) {
o = null;
}
}
return temp;
}
2.decode
public static byte[] decode(String strValue, String encode) {
ByteArrayOutputStream o = new ByteArrayOutputStream();
byte d[] = new byte[];
try{
int count = ;
byte x[] = null;
try {
x = strValue.getBytes(encode);
} catch (UnsupportedEncodingException e) {
logger.error(e.toString(), e);
}
do {
if(count >= x.length) {
break;
}
for(int n = ; n <= ; n++){
if(count >= x.length) {
d[n] = ;
}
else {
int y = strTableBase64.indexOf(x[count]);
if(y < ) {
y = ;
}
d[n] = (byte) y;
}
count++;
}
o.write((byte) (((d[] & 0x3f) << ) + ((d[] & 0x30) >> )));
if(d[] != ) {
o.write((byte) (((d[] & 0xf) << ) + ((d[] & 0x3c) >> )));
if(d[] != ) {
o.write( (byte) ( ((d[] & ) << ) + (d[] & 0x3f)));
}
}
} while(true);
}
catch(StringIndexOutOfBoundsException e) {
logger.error(e.toString());
}
if(o != null){
d = o.toByteArray();
try {
o.close();
o = null;
} catch (IOException e) {
logger.error(e.toString(), e);
}
}
return d;
}
java-base64的更多相关文章
- android Java BASE64编码和解码二:图片的编码和解码
1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...
- Java Base64加密、解密原理Java代码
Java Base64加密.解密原理Java代码 转自:http://blog.csdn.net/songylwq/article/details/7578905 Base64是什么: Base64是 ...
- java base64编码、解码的三种方式
java base64编码.解码 CreationTime--2018年7月24日10点38分 Author:Marydon 1.方式一:DatatypeConverter 说明:使用jdk自带的 ...
- c# 与java base64 不一致解决方案
不一致的问题不是编码的问题 而是json字符串的问题通常我们会json 嵌套 我们先来看连个字符串 {"contentType":"","http ...
- Java Base64、HMAC、SHA1、MD5、AES DES 3DES加密算法
● BASE64 严格地说,属于编码格式,而非加密算法 ● MD5(Message Digest algorithm 5,信息摘要算法) ● SHA(Secure Hash Algo ...
- java base64加解密
接上篇java Base64算法. 根据之前过程使用base64加解密,所以写成了工具类. 代码示例; public class Base64Util { private static Logger ...
- Kotlin/Java Base64编码和解码(图片、文件)
原文: Kotlin/Java Base64编码和解码(图片.文件) | Stars-One的杂货小窝 最近在项目中使用到了Base64编码和解码,便是稍微写篇文章记录一下 PS:本文代码都是使用Ko ...
- ajax java base64 图片储存
js代码 //利用formdata上传 var dataUrl = $('#canvas').getDataUrl(); var img = $('<img>').attr('src', ...
- java Base64算法的使用
Base64是常见的网络加密算法,Base64编码可用于在HTTP环境下传递较长的标识信息.详见 Base64介绍 1 自定义的base64算法 Base64Encrypt.java public c ...
- android Java BASE64编码和解码一:基础
今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输. 类似这样的: {"name":"jike&q ...
随机推荐
- (转载)PHP源代码分析- tick(s)
(转载)http://bbs.phpchina.com/forum.php?mod=viewthread&tid=94534 昨天有位朋友在杭州的PHPer群里面贴出了下面的一段代码并给出了运 ...
- Delphi WebService连接数据库
1. 图如下: 个人测试 客户端 1. 2.
- [Locked] Alien Dictionary
Alien Dictionary There is a new alien language which uses the latin alphabet. However, the order amo ...
- 60秒找到最对的size?为服饰电商提供尺寸匹配解决方案的True Fit获1500万美元融资 | 36氪
60秒找到最对的size?为服饰电商提供尺寸匹配解决方案的True Fit获1500万美元融资 | 36氪 60秒找到最对的size?为服饰电商提供尺寸匹配解决方案的True Fit获1500万美元融 ...
- 谈谈C#中的接口
接口的相关陈述 1.一个接口定义了一个契约. 2.接口可以包容方法.C#属性.事件.以及索引器. 3.在一个接口声明中,我们可以声明零个或者多个成员. 4.所有接口成员的默认访问类型都是public. ...
- iphone匹配邮箱的正则表达式
NSString *str = [NSString stringWithString:@"\\b([a-zA-Z0-9%_.+\\-]+)@([a-zA-Z0-9.\\-]+?\\.[a-z ...
- Core OS 层
Core OS层的底层功能是很多其他技术的构建基础.通常情况下,这些功能不会直接应用于应用程序,而是应用于其他框架.但是,在直接处理安全事务或和某个外设通讯的时候,则必须要应用到该层的框架. Acce ...
- Fragment 回退栈 传递参数,点击切换图片使用Fragment ListView
Fragment回退栈 类似与Android系统为Activity维护一个任务栈,我们也可以通过Activity维护一个回退栈来保存每次Fragment事务发生的变化. 如果你将Fragment任务 ...
- J2EE之WebLogic Server
WebLogic是用于开发.集成.部署和管理大型分布式Web应用. 网络应用和数据库应 用的Java应用server. 将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用 ...
- MySQL Replication, 主从和双主配置
MySQL Replication, 主从和双主配置 MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场 ...