static public byte [ ] decode ( String encoded ) { if ( encoded == null ) return null ; int lengthData = encoded . length ( ) ; if ( lengthData % 2 != 0 ) return null ; char [ ] binaryData = encoded . toCharArray ( ) ; int lengthDecode = lengthData / 2 ; byte [ ] decodedData = new byte [ lengthDecode ] ; byte temp1 , temp2 ; char tempChar ; for ( int i = 0 ; i < lengthDecode ; i ++ ) { tempChar = binaryData [ i * 2 ] ; temp1 = ( tempChar < BASELENGTH ) ? hexNumberTable [ tempChar ] : - 1 ; if ( temp1 == - 1 ) return null ; tempChar = binaryData [ i * 2 + 1 ] ; temp2 = ( tempChar < BASELENGTH ) ? hexNumberTable [ tempChar ] : - 1 ; if ( temp2 == - 1 ) return null ; decodedData [ i ] = ( byte ) ( ( temp1 << 4 ) | temp2 ) ; } return decodedData ; }
Decode hex string to a byte array