Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916

    decriptare algoritmo sha1

    ciao a tutti, ho trovato questo alcoritmo per criptare le stringhe, ma non riesco a capire come decriptarle...

    codice:
    <script>
    /**
    *
    *  Secure Hash Algorithm (SHA1)
    *  http://www.webtoolkit.info/
    *
    **/
    
    function SHA1 (msg) {
    
    	function rotate_left(n,s) {
    		var t4 = ( n<<s ) | (n>>>(32-s));
    		return t4;
    	};
    
    	function lsb_hex(val) {
    		var str="";
    		var i;
    		var vh;
    		var vl;
    
    		for( i=0; i<=6; i+=2 ) {
    			vh = (val>>>(i*4+4))&0x0f;
    			vl = (val>>>(i*4))&0x0f;
    			str += vh.toString(16) + vl.toString(16);
    		}
    		return str;
    	};
    
    	function cvt_hex(val) {
    		var str="";
    		var i;
    		var v;
    
    		for( i=7; i>=0; i-- ) {
    			v = (val>>>(i*4))&0x0f;
    			str += v.toString(16);
    		}
    		return str;
    	};
    
    
    	function Utf8Encode(string) {
    		string = string.replace(/\r\n/g,"\n");
    		var utftext = "";
    
    		for (var n = 0; n < string.length; n++) {
    
    			var c = string.charCodeAt(n);
    
    			if (c < 128) {
    				utftext += String.fromCharCode(c);
    			}
    			else if((c > 127) && (c < 2048)) {
    				utftext += String.fromCharCode((c >> 6) | 192);
    				utftext += String.fromCharCode((c & 63) | 128);
    			}
    			else {
    				utftext += String.fromCharCode((c >> 12) | 224);
    				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
    				utftext += String.fromCharCode((c & 63) | 128);
    			}
    
    		}
    
    		return utftext;
    	};
    
    	var blockstart;
    	var i, j;
    	var W = new Array(80);
    	var H0 = 0x67452301;
    	var H1 = 0xEFCDAB89;
    	var H2 = 0x98BADCFE;
    	var H3 = 0x10325476;
    	var H4 = 0xC3D2E1F0;
    	var A, B, C, D, E;
    	var temp;
    
    	msg = Utf8Encode(msg);
    
    	var msg_len = msg.length;
    
    	var word_array = new Array();
    	for( i=0; i<msg_len-3; i+=4 ) {
    		j = msg.charCodeAt(i)<<24 | msg.charCodeAt(i+1)<<16 |
    		msg.charCodeAt(i+2)<<8 | msg.charCodeAt(i+3);
    		word_array.push( j );
    	}
    
    	switch( msg_len % 4 ) {
    		case 0:
    			i = 0x080000000;
    		break;
    		case 1:
    			i = msg.charCodeAt(msg_len-1)<<24 | 0x0800000;
    		break;
    
    		case 2:
    			i = msg.charCodeAt(msg_len-2)<<24 | msg.charCodeAt(msg_len-1)<<16 | 0x08000;
    		break;
    
    		case 3:
    			i = msg.charCodeAt(msg_len-3)<<24 | msg.charCodeAt(msg_len-2)<<16 | msg.charCodeAt(msg_len-1)<<8	| 0x80;
    		break;
    	}
    
    	word_array.push( i );
    
    	while( (word_array.length % 16) != 14 ) word_array.push( 0 );
    
    	word_array.push( msg_len>>>29 );
    	word_array.push( (msg_len<<3)&0x0ffffffff );
    
    
    	for ( blockstart=0; blockstart<word_array.length; blockstart+=16 ) {
    
    		for( i=0; i<16; i++ ) W[i] = word_array[blockstart+i];
    		for( i=16; i<=79; i++ ) W[i] = rotate_left(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1);
    
    		A = H0;
    		B = H1;
    		C = H2;
    		D = H3;
    		E = H4;
    
    		for( i= 0; i<=19; i++ ) {
    			temp = (rotate_left(A,5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
    			E = D;
    			D = C;
    			C = rotate_left(B,30);
    			B = A;
    			A = temp;
    		}
    
    		for( i=20; i<=39; i++ ) {
    			temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
    			E = D;
    			D = C;
    			C = rotate_left(B,30);
    			B = A;
    			A = temp;
    		}
    
    		for( i=40; i<=59; i++ ) {
    			temp = (rotate_left(A,5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
    			E = D;
    			D = C;
    			C = rotate_left(B,30);
    			B = A;
    			A = temp;
    		}
    
    		for( i=60; i<=79; i++ ) {
    			temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
    			E = D;
    			D = C;
    			C = rotate_left(B,30);
    			B = A;
    			A = temp;
    		}
    
    		H0 = (H0 + A) & 0x0ffffffff;
    		H1 = (H1 + B) & 0x0ffffffff;
    		H2 = (H2 + C) & 0x0ffffffff;
    		H3 = (H3 + D) & 0x0ffffffff;
    		H4 = (H4 + E) & 0x0ffffffff;
    
    	}
    
    	var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
    
    	return temp.toLowerCase();
    
    }
    document.write(SHA1('ciao'))
    </script>
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  2. #2
    penso che molti hacker cerchino un algoritmo veloce per decriptare i codici hash attualmente c'è la forza bruta .. per scovarli usando dizionari noti o paroli comuni ecc..

    cmq, per esempio con le password si codificano i due hash e si verificano se sono indentici, nel caso la password è esatta. Oppure puoi pensare di usare la crittografia (con chiave pubblica, simmetricva, asimmetrica ecc ecc) se vuoi scambiare messaggi protetti fra due o più utenti / client / servers ecc

    ciao

  3. #3
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da dav22
    penso che molti hacker cerchino un algoritmo veloce per decriptare i codici hash attualmente c'è la forza bruta .. per scovarli usando dizionari noti o paroli comuni ecc..

    cmq, per esempio con le password si codificano i due hash e si verificano se sono indentici, nel caso la password è esatta. Oppure puoi pensare di usare la crittografia (con chiave pubblica, simmetricva, asimmetrica ecc ecc) se vuoi scambiare messaggi protetti fra due o più utenti / client / servers ecc

    ciao
    grazie...

    ma per dire la verità devo fare una cosa molto banale ovvero, prendere una stringa "camuffarla" per inserirla in querystring, e ove mi serve decriptarla per riottenere il dato.

    avevo pensato ad un algoritmo di criptazione, ma non ho trovato niente fin'ora.
    Hai qualche script da suggerire?
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  4. #4
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    uppo...

    non trovo nulla nel forum...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  5. #5
    di già pronto nulla mi dispiace..

    ma tu utilizzi il metodo get per passare i valori ? se hai la possibilità cambialo in post per vedere se questo ti basta.. in alternativa dovresti prevedere l'utilizzo del protocollo https, certificati o affini per avere un passaggio di dati sicuri, altrimenti anceh se utilizzassi delel codifiche particolari o adhoc tipo shiftare caratteri, rimischiarli o altro sarebbero solo non leggibili ma non ti darebbero nessuna garanzia, anzi..

    spero che qualcuno di più preparato e afferrato ci possa chiarire un poco le idee.

    giusto per curiosità, ma che informazioni devi far passare?

    ciao

  6. #6
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da dav22
    di già pronto nulla mi dispiace..

    ma tu utilizzi il metodo get per passare i valori ? se hai la possibilità cambialo in post per vedere se questo ti basta.. in alternativa dovresti prevedere l'utilizzo del protocollo https, certificati o affini per avere un passaggio di dati sicuri, altrimenti anceh se utilizzassi delel codifiche particolari o adhoc tipo shiftare caratteri, rimischiarli o altro sarebbero solo non leggibili ma non ti darebbero nessuna garanzia, anzi..

    spero che qualcuno di più preparato e afferrato ci possa chiarire un poco le idee.

    giusto per curiosità, ma che informazioni devi far passare?

    ciao
    devo solo camuffare una stringa... non mi interressa che sia facilmente decriptablie... è solo una cosa a livello visivo.

    so che è una cosa inutile... ma così mi hanno chiesto di fare!
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  7. #7
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    in effetti se non ti serve niente per la sicurezza il base64_encode e decode è quello che fa per te

    una stringa tipo "This is an encoded string"
    diventa "VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw=="

    ciao




    <pubblibità> Whisher se vuoi passa anche dal mio thread (sezione php) </pubblibità>

  9. #9
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    si, da quello che ho visto dovrebbe funzionare al caso mio, ma non capisco perchè non mi da nulla se lo voglio stampare a video:

    codice:
    <script>
    function base64_encode( data ) {
        // http://kevin.vanzonneveld.net
        // +   original by: Tyler Akins (http://rumkin.com)
        // +   improved by: Bayron Guevara
        // +   improved by: Thunder.m
        // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)        
        // -    depends on: utf8_encode
        // *     example 1: base64_encode('Kevin van Zonneveld');
        // *     returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
     
        // mozilla has this native
        // - but breaks in 2.0.0.12!
        //if (typeof window['atob'] == 'function') {
        //    return atob(data);
        //}
            
        var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        var o1, o2, o3, h1, h2, h3, h4, bits, i = ac = 0, enc="", tmp_arr = [];
        data = utf8_encode(data);
        
        do { // pack three octets into four hexets
            o1 = data.charCodeAt(i++);
            o2 = data.charCodeAt(i++);
            o3 = data.charCodeAt(i++);
     
            bits = o1<<16 | o2<<8 | o3;
     
            h1 = bits>>18 & 0x3f;
            h2 = bits>>12 & 0x3f;
            h3 = bits>>6 & 0x3f;
            h4 = bits & 0x3f;
     
            // use hexets to index into b64, and append result to encoded string
            tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
        } while (i < data.length);
        
        enc = tmp_arr.join('');
        
        switch( data.length % 3 ){
            case 1:
                enc = enc.slice(0, -2) + '==';
            break;
            case 2:
                enc = enc.slice(0, -1) + '=';
            break;
        }
     
        return enc;
    }
    
    document.write(base64_encode('ciao'));
    
    </script>
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  10. #10
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    sono riuscito a farlo funzionare.

    mi chiedevo però se esiste il modo per aumentare il numero dei caratteri che si hanno in criptazione.
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

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.