base64utils java,Java Base64Utils ----Utils

/**

*

*

Copyright 1994 JsonInternational

All rights reserved.

Created on 19941115

Created by Jason

*

*/

package cn.ucaner.alpaca.framework.utils.encrypt;

/**

* @Package:cn.ucaner.common.utils.encrypt

* @ClassName:Base64Utils

* @Description:  

BASE64加解密工具类

* @Author: - Jason

* @CreatTime:2017年10月25日 下午5:49:33

* @Modify By:

* @ModifyTime:

* @Modify marker:

* @version    V1.0

*/

class Base64Utils {

private static char[] base64EncodeChars =new char[] {'A','B','C','D',

'E','F','G','H','I','J','K','L','M','N','O','P','Q',

'R','S','T','U','V','W','X','Y','Z','a','b','c','d',

'e','f','g','h','i','j','k','l','m','n','o','p','q',

'r','s','t','u','v','w','x','y','z','0','1','2','3',

'4','5','6','7','8','9','+','/' };

private static byte[] base64DecodeChars =new byte[] { -1, -1, -1, -1, -1,

-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

-1, -1, -1, -1,62, -1, -1, -1,63,52,53,54,55,56,57,58,59,

60,61, -1, -1, -1, -1, -1, -1, -1,0,1,2,3,4,5,6,7,8,9,

10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, -1,

-1, -1, -1, -1, -1,26,27,28,29,30,31,32,33,34,35,36,37,

38,39,40,41,42,43,44,45,46,47,48,49,50,51, -1, -1, -1,

-1, -1 };

/**

* BASE64加密

* @param data

* @return

*/

protected static String encrypt(byte[] data) {

StringBuffer sb =new StringBuffer();

int len = data.length;

int i =0;

int b1, b2, b3;

while (i < len) {

b1 = data[i++] &0xff;

if (i == len) {

sb.append(base64EncodeChars[b1 >>>2]);

sb.append(base64EncodeChars[(b1 &0x3) <<4]);

sb.append("==");

break;

}

b2 = data[i++] &0xff;

if (i == len) {

sb.append(base64EncodeChars[b1 >>>2]);

sb.append(base64EncodeChars[((b1 &0x03) <<4)

| ((b2 &0xf0) >>>4)]);

sb.append(base64EncodeChars[(b2 &0x0f) <<2]);

sb.append("=");

break;

}

b3 = data[i++] &0xff;

sb.append(base64EncodeChars[b1 >>>2]);

sb.append(base64EncodeChars[((b1 &0x03) <<4)

| ((b2 &0xf0) >>>4)]);

sb.append(base64EncodeChars[((b2 &0x0f) <<2)

| ((b3 &0xc0) >>>6)]);

sb.append(base64EncodeChars[b3 &0x3f]);

}

return sb.toString();

}

/**

* Base64 解密

* @param str

* @return

* @throws Exception

*/

protected static byte[] decrypt(String str)throws Exception{

StringBuffer sb =new StringBuffer();

byte[] data =  str.getBytes("US-ASCII");

int len = data.length;

int i =0;

int b1, b2, b3, b4;

while (i < len) {

do {

b1 = base64DecodeChars[data[i++]];

}while (i < len && b1 == -1);

if (b1 == -1)

break;

do {

b2 = base64DecodeChars[data[i++]];

}while (i < len && b2 == -1);

if (b2 == -1)

break;

sb.append((char) ((b1 <<2) | ((b2 &0x30) >>>4)));

do {

b3 = data[i++];

if (b3 ==61)

return sb.toString().getBytes("iso8859-1");

b3 = base64DecodeChars[b3];

}while (i < len && b3 == -1);

if (b3 == -1)

break;

sb.append((char) (((b2 &0x0f) <<4) | ((b3 &0x3c) >>>2)));

do {

b4 = data[i++];

if (b4 ==61)

return sb.toString().getBytes("iso8859-1");

b4 = base64DecodeChars[b4];

}while (i < len && b4 == -1);

if (b4 == -1)

break;

sb.append((char) (((b3 &0x03) <<6) | b4));

}

return sb.toString().getBytes("iso8859-1");

}

/**

*For Test By Jason

*/

public static void main(String[] args) {

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值