code: public static String getCompressedStringFromGuid(Guid guid)
  	{
  	    long[] num = new long[6];
  	    char[][] str = new char[6][5];
  	    int i,j,n;
  	    String result = new String();
  
  	    //
  	    // Creation of six 32 Bit integers from the components of the GUID structure
  	    //
  	    num[0] = (long)(guid.Data1 / 16777216);                                                //    16. byte  (pGuid->Data1 / 16777216) is the same as (pGuid->Data1 >> 24)
  	    num[1] = (long)(guid.Data1 % 16777216);                                                // 15-13. bytes (pGuid->Data1 % 16777216) is the same as (pGuid->Data1 & 0xFFFFFF)
  	    num[2] = (long)(guid.Data2 * 256 + guid.Data3 / 256);                                  // 12-10. bytes
  	    num[3] = (long)((guid.Data3 % 256) * 65536 + guid.Data4[0] * 256 + guid.Data4[1]);     // 09-07. bytes
  	    num[4] = (long)(guid.Data4[2] * 65536 + guid.Data4[3] * 256 + guid.Data4[4]);          // 06-04. bytes
  	    num[5] = (long)(guid.Data4[5] * 65536 + guid.Data4[6] * 256 + guid.Data4[7]);          // 03-01. bytes
  	    //
  	    // Conversion of the numbers into a system using a base of 64
  	    //
  	    n = 3;
  	    for (i = 0; i < 6; i++) {
  	        if (!cv_to_64 (num[i], str[i], n)) {
  	            return null;
  	        }
  		    for(j = 0; j<str[i].length; j++)
  		    	if(str[i][j]!= '\0') result += str[i][j];
  	        
  	        n = 5;
  	    }
  	    return result;
  	}
docs: Converts a Guid-object into a compressed string representation of a GUID
  @param guid the Guid-object
  @return String with a length of 22 characters