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的更多相关文章

  1. android Java BASE64编码和解码二:图片的编码和解码

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  2. Java Base64加密、解密原理Java代码

    Java Base64加密.解密原理Java代码 转自:http://blog.csdn.net/songylwq/article/details/7578905 Base64是什么: Base64是 ...

  3. java base64编码、解码的三种方式

      java base64编码.解码 CreationTime--2018年7月24日10点38分 Author:Marydon 1.方式一:DatatypeConverter 说明:使用jdk自带的 ...

  4. c# 与java base64 不一致解决方案

    不一致的问题不是编码的问题  而是json字符串的问题通常我们会json 嵌套  我们先来看连个字符串 {"contentType":"","http ...

  5. Java Base64、HMAC、SHA1、MD5、AES DES 3DES加密算法

    ●  BASE64 严格地说,属于编码格式,而非加密算法    ●  MD5(Message Digest algorithm 5,信息摘要算法)    ●  SHA(Secure Hash Algo ...

  6. java base64加解密

    接上篇java Base64算法. 根据之前过程使用base64加解密,所以写成了工具类. 代码示例; public class Base64Util { private static Logger ...

  7. Kotlin/Java Base64编码和解码(图片、文件)

    原文: Kotlin/Java Base64编码和解码(图片.文件) | Stars-One的杂货小窝 最近在项目中使用到了Base64编码和解码,便是稍微写篇文章记录一下 PS:本文代码都是使用Ko ...

  8. ajax java base64 图片储存

    js代码 //利用formdata上传 var dataUrl = $('#canvas').getDataUrl(); var img = $('<img>').attr('src', ...

  9. java Base64算法的使用

    Base64是常见的网络加密算法,Base64编码可用于在HTTP环境下传递较长的标识信息.详见 Base64介绍 1 自定义的base64算法 Base64Encrypt.java public c ...

  10. android Java BASE64编码和解码一:基础

    今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输. 类似这样的: {"name":"jike&q ...

随机推荐

  1. (转载)PHP源代码分析- tick(s)

    (转载)http://bbs.phpchina.com/forum.php?mod=viewthread&tid=94534 昨天有位朋友在杭州的PHPer群里面贴出了下面的一段代码并给出了运 ...

  2. wp8模拟器中使用电脑键盘和模拟器的版本解释

    一:如图启用和关闭 二:电脑按键对应的手机的按键 三:模拟器的版本解释

  3. 《算法问题实战策略》-chaper8-动态规划法

    Q1:偶尔在电视上看到一些被称为“神童”的孩子们背诵小数点以后几万位的圆周率.背诵这么长的数字,可利用分割数字的方法.我们用这种方法将数字按照位数不等的大小分割后再背诵. 分割形式如下: 所有数字都相 ...

  4. lightoj 1251 (Two_Sat)

    #include<cstdio> #include<cstring> #include<iostream> #include<cmath> #inclu ...

  5. oracle参数优化

    关闭OEM,使用oracle用户登录,执行命令: emctl status dbconsole emctl stop dbconsole 以下命令推荐用sys用户登录PLSQL Developer,使 ...

  6. AngularJS测试二 jasmine测试路由 控制器 过滤器 事件 服务

    测试应用 1.测试路由 我们需要检测路由是否在运作,是否找到了,或者是404了.我们要确认路由事件触发了,预期的模板是否真的加载了.既然路由会改变页面的地址(URL)和页面内容,我们需要检测路由是否被 ...

  7. selenium webdriver启动Chrome浏览器后无法输入网址的解决办法

    通过selenium webdriver启动Chrome浏览器,脚本如下: from selenium import webdriver browser = webdriver.Chrome() br ...

  8. C++基础复习

    1.Object-C也是面向对象的语言:2.#include<iostream> //#include是一个预处理指令3.using namespace std; //std是命名空间,u ...

  9. 【C语言天天练(二一)】内联函数

            引言:调用函数时,一般会由于建立调用.传递參数.跳转到函数代码并返回等花费掉一些时间,C语言的解决的方法是使用类函数宏.在C99中,还提出了第二种方法:内联函数.         内联 ...

  10. (转)cocos2dx 内存管理

    原文地址:http://blog.csdn.net/ring0hx/article/details/7946397 cocos2dx的内存管理移植自Objective-C, 对于没有接触过OC的C++ ...