Mi sa che mi sono incasinato con uno dei metodi privati: private static String getString( byte[] bytes ) e private static byte[] getBytes( String str ) ...

Vi riporto l'intero file già pronto per l'uso, spero mi possiate aiutare:
codice:
import java.util.*;
import java.io.*;
import java.security.*;
import java.io.*;

public class HashUtils
{
  private static String getString( byte[] bytes )
  {
    StringBuffer sb = new StringBuffer();
    for( int i=0; i<bytes.length; i++ )
    {
      byte b = bytes[ i ];
      sb.append( ( int )( 0x00FF & b ) );
      if( i+1 <bytes.length )
      {
        sb.append( "-" );
      }
    }
    return sb.toString();
  }

  private static byte[] getBytes( String str )
  {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    StringTokenizer st = new StringTokenizer( str, "-", false );
    while( st.hasMoreTokens() )
    {
      int i = Integer.parseInt( st.nextToken() );
      bos.write( ( byte )i );
    }
    return bos.toByteArray();
  }

  public static String md5( String source )
  {
    try
    {
     MessageDigest md = MessageDigest.getInstance( "MD5" );
     byte[] bytes = md.digest( source.getBytes() );
     return getString( bytes );
    }
    catch( Exception e )
    {
     e.printStackTrace();
     return null;
    }
  }

  public static String sha( String source )
  {
    try
    {
     MessageDigest md = MessageDigest.getInstance( "SHA" );
     byte[] bytes = md.digest( source.getBytes() );
     return getString( bytes );
    }
    catch( Exception e )
    {
     e.printStackTrace();
     return null;
    }
  }
  
  public static String sha512( String source )
  {
    try
    {
     MessageDigest md = MessageDigest.getInstance( "SHA-512" );
     byte[] bytes = md.digest( source.getBytes() );
     return getString( bytes );
    }
    catch( Exception e )
    {
     e.printStackTrace();
     return null;
    }
  }
  
  public static File creaFile(String word)
  {
	try
	{
		File f=new File("passwd.txt");
		FileOutputStream fos=new FileOutputStream(f);
		PrintStream ps=new PrintStream(fos);
		ps.println("Hash con separatori: \n");
		ps.println( "Word: " + word );
		ps.println( " MD5: " + HashUtils.md5( word ));
		ps.println( " SHA: " + HashUtils.sha( word ));
		ps.println( " SHA-512: " + HashUtils.sha512( word )+"\n");   
		
		ps.println("Hash senza separatori: \n");
		ps.println( "Word: " + word );
		ps.println( " MD5: " + HashUtils.md5( word ).replaceAll("-","") );
		ps.println( " SHA: " + HashUtils.sha( word ).replaceAll("-",""));
		ps.println( " SHA-512: " + HashUtils.sha512( word ).replaceAll("-","") );   
		return f;
	}
	 catch( Exception e )
    {
     e.printStackTrace();
     return null;
    }
		
  }

  public static void main( String[] args )
  {	
    if( args.length < 1 )
    {
	 System.out.println("Non hai inserito la password da criptare... \n Esempio: \n java HashUtils password");
     System.exit( 0 );
    }
    String word = args[ 0 ];
	HashUtils.creaFile(word);
	System.out.println( "Word: " + word );
    System.out.println( " MD5: " + HashUtils.md5( word ) );
    System.out.println( " SHA: " + HashUtils.sha( word ) );
	System.out.println( " SHA-512: " + HashUtils.sha512( word ) );
  }
}