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 ) );
}
}