Mega Code Archive

 
Categories / Java / Development Class
 

Encodes octects (using utf-8) into Hex data

/*   Copyright 2004 The Apache Software Foundation  *  *   Licensed under the Apache License, Version 2.0 (the "License");  *   you may not use this file except in compliance with the License.  *   You may obtain a copy of the License at  *  *       http://www.apache.org/licenses/LICENSE-2.0  *  *   Unless required by applicable law or agreed to in writing, software  *   distributed under the License is distributed on an "AS IS" BASIS,  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  *   See the License for the specific language governing permissions and  *  limitations under the License.  */ //xmlbeans import java.io.UnsupportedEncodingException; /**  * format validation  *  * This class encodes/decodes hexadecimal data  * @author Jeffrey Rodriguez  * @version $Id: HexBin.java 125124 2005-01-14 00:23:54Z kkrouse $  */ public class Main {   static private final int  BASELENGTH   = 255;   static private final int  LOOKUPLENGTH = 16;   static private byte [] hexNumberTable    = new byte[BASELENGTH];   static private byte [] lookUpHexAlphabet = new byte[LOOKUPLENGTH];   static {       for (int i = 0; i<BASELENGTH; i++ ) {           hexNumberTable[i] = -1;       }       for ( int i = '9'; i >= '0'; i--) {           hexNumberTable[i] = (byte) (i-'0');       }       for ( int i = 'F'; i>= 'A'; i--) {           hexNumberTable[i] = (byte) ( i-'A' + 10 );       }       for ( int i = 'f'; i>= 'a'; i--) {          hexNumberTable[i] = (byte) ( i-'a' + 10 );       }       for(int i = 0; i<10; i++ )           lookUpHexAlphabet[i] = (byte) ('0'+i );       for(int i = 10; i<=15; i++ )           lookUpHexAlphabet[i] = (byte) ('A'+i -10);   }   /**    * Encodes octects (using utf-8) into Hex data    *    * @param binaryData String containing Hex data    * @return string containing decoded data.    */   public static String encode(String binaryData) {       if (binaryData == null)           return null;       byte[] encoded = null;       try {         encoded = encode(binaryData.getBytes("utf-8"));       }       catch(UnsupportedEncodingException e) {}       return encoded == null ? null : new String(encoded);   }   /**    * array of byte to encode    *    * @param binaryData    * @return return encode binary array    */   static public byte[] encode(byte[] binaryData) {       if (binaryData == null)           return null;       int lengthData   = binaryData.length;       int lengthEncode = lengthData * 2;       byte[] encodedData = new byte[lengthEncode];       for( int i = 0; i<lengthData; i++ ){           encodedData[i*2] = lookUpHexAlphabet[(binaryData[i] >> 4) & 0xf];           encodedData[i*2+1] = lookUpHexAlphabet[ binaryData[i] & 0xf];       }       return encodedData;   } }