Java Base64Utils ----Utils

Java Base64Utils

 

目录

 

Java Base64Utils

7 /**  * <html>  * <body>  *  <P> Copyright 1994 JsonInternational</p>  *  <p> All rights reserved.</p>  *  <p> Created on 19941115</p>  *  <p> Created by Jason</p>  *  </body>  * </html>  */ package cn.ucaner.alpaca.framework.utils.encrypt;   /** * @Package:cn.ucaner.common.utils.encrypt   * @ClassName:Base64Utils   * @Description:   <p> BASE64加解密工具类</p> * @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, -162, -1, -1, -1635253545556575859,             6061, -1, -1, -1, -1, -1, -1, -10123456789,             10111213141516171819202122232425, -1,             -1, -1, -1, -1, -1262728293031323334353637,             3839404142434445464748495051, -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) {               } }

  

 

分类: JavaUtils 标签: java工具
上一篇:js/vue 计算近半年/近1年日期(可跨年)


下一篇:SAP Spartacus B2cStorefrontModule里提供的默认配置