Visualizzazione dei risultati da 1 a 5 su 5

Discussione: errore sha-256

  1. #1

    errore sha-256

    ciao.
    ho il seguente errore:
    unreported exception java.security.NoSuchAlgorithmException; must be caught or declared to be thrown
    String sha1_ad1 = Sha256.SHA1("abc");

    codice:
    import java.io.UnsupportedEncodingException;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.io.IOException;
     
    public class Sha256 {
     
        private static String convertToHex(byte[] data) 
        {
        	try
        	{
        		StringBuffer buf = new StringBuffer();
    	        for (int i = 0; i < data.length; i++) {
    	        	int halfbyte = (data[i] >>> 4) & 0x0F;
    	        	int two_halfs = 0;
    	        	do {
    		            if ((0 <= halfbyte) && (halfbyte <= 9))
    		                buf.append((char) ('0' + halfbyte));
    		            else
    		            	buf.append((char) ('a' + (halfbyte - 10)));
    		            halfbyte = data[i] & 0x0F;
    	        	} while(two_halfs++ < 1);
    	        }
    	        return buf.toString();
        	}
            catch(Exception e)
            {
            	return null;
            }
        }
     
        public static String SHA1(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException
    	{
    	  	try
    	  	{
    	  		MessageDigest md;
    			md = MessageDigest.getInstance("SHA-256");
    			byte[] sha1hash = new byte[40];
    			md.update(text.getBytes("iso-8859-1"), 0, text.length());
    			sha1hash = md.digest();
    			return convertToHex(sha1hash);
    	  	}
    	  	catch (Exception e)
    	  	{
    	  		return null;
    	  	}
        }
        
        public static void main(String[] args) {
        	String sha1_ad1 = Sha256.SHA1("abc");	
        	System.out.println(sha1_ad1);
        	//String s = "abc";
        	//Sha256 sha = new Sha256();
        	//String sha1_ad1 = sha.SHA1(s);
        }
    }
    Per favore, potete aiutarmi.
    Grazie
    Ciao
    Alberto

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    vedi come hai dichiarato il metodo SHA1? Con quella dichiarazione con throws il metodo dichiara che potrebbe sollevare un'eccezione del tipo dichiarato che sarà cura del chiamante gestire. Tu nel main non gestisci un bel niente, semplicemente richiami il metodo SHA1.

    Soluzioni a tuo piacimento:
    - inventi la gestione dell'eccezione nel metodo stesso ed elimini il throws dalla dichiarazione;
    - metti la chiamata al metodo dentro un opprtuno blocco try/catch
    - dichiari anche main con throws e speri che non si sollevi mai.

    La terza proprio brutta, la prima bruttarella (se quel throws ha un significato, ovviamente)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    il codice l'ho trovato in giro su internet, di java purtroppo non ci capisco. riesci a fornirmi del codice per favore te ne sarei veramente grato.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    sostituisci il main con questo

    codice:
    public static void main(String[] args) {
      try {
        String sha1_ad1 = Sha256.SHA1("abc");
        System.out.println(sha1_ad1);
      }
      catch (Exception e) {
        e.printStackTrace();
      }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    perfetto, grazie 1000!!!
    Funziona!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.