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

Rispondi quotando