fare tutte le hash supportate dal server 3


Oggi vediamo come fare in automatico tutte le hash supportate dal server.

Questo metodo è lo stesso utilizzato in http://www.thecsea.it/servizi/hash

Per prima cosa facicamo un phpinfo() in una pagina e andiamo a recuperare il valore di “Hashing Engines”, che indica i tipi di hash supportate dal server,in seguito lo andiamo a memorizzare in una variabile chiama $hash e memorizziamo in $testo il valore della stringa da cui deve essere fatta l’hash.

Infine usiamo questo codice per stampare tutte le hash:

<?php
$testo = "stringa da cui effettuare l'hash";
$hash = "md2 md4 md5 sha1 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru gost adler32 crc32 crc32b haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5";
	$hash = explode(" ",trim($hash));
	$n_hash = count($hash);
	for($i=0;$i<$n_hash;$i++)
		print "$hash[$i] : ".hash($hash[$i],$testo)."<br />\n";
?>

In pratica io non faccio altro che crearmi un array contente le varie hash, con la funzione explode che considera come delimitatori di hash uno spazio, quindi considererebbe come hash anche il niente diviso dagli eventuali spazi all’inizio e/o alla fine, per questo uso anche la funzione trim che me li elimina.

In fine faccio itero scorrendo tutto il vettore e stampo l’hash ottenuta usando la funzione hash, che come paramatri ha il valore corrente del vettore, che indica il tipo di hash, e $testo.

CC BY-SA 4.0 fare tutte le hash supportate dal server by cardinale claudio is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


Lascia un commento

3 commenti su “fare tutte le hash supportate dal server

  • Carlo Bellini

    Ciao!

    creo una tabella in word in questo modo:
    codice:

    Private Sub Command4_Click()
    Dim WordApp As Object
    Set WordApp = New Word.Application
    WordApp.Documents.Open App.Path & “\Carta_intestata.doc”
    WordApp.Visible = True
    With WordApp.Selection
    .Tables.Add WordApp.Selection.Range, 1, 7
    .Tables(1).Columns.AutoFit
    .Tables(1).Borders.Enable = True
    End With
    End Sub

    la popolo con i dati presenti in un MSFlexGrid dopo una query in questo modo:

    codice:

    .Tables(1).Cell(2, 1).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 2) & “”
    .Tables(1).Cell(2, 2).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 3) & “”
    .Tables(1).Cell(2, 3).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 8) & “”
    .Tables(1).Cell(2, 4).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 9) & “”
    .Tables(1).Cell(2, 5).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 10) & “”
    .Tables(1).Cell(2, 6).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 17) & “”
    .Tables(1).Cell(2, 7).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 19) & “”

    tutto bene fin qui… ma c’è un modo per aggiungere alla tabella di word un tot di righe per quanti sono i record trovati dalla query sulla MSflexGrid?

    Mi spiego meglio:
    se facendo la query, viene trovato e visualizzato nel MSFlexGrid un solo record allora il codice qui sopra va bene…ma se la query trova più records come faccio ad aggiungere alla tabella tante righe (rows) per quanti sono i record trovati?

    se aumento il numero di righe in queto punto:
    codice:

    .Tables.Add WordApp.Selection.Range, 10, 7

    poi mi lascia ad esempio 7 righe vuote se la query mi trova solo 3 records e non va bene in quanto la tabella dev’essere rapportata al contenuto. Come posso fare? :master:

    inoltre per aggiungere i records alla tabella devo ogni volta ripetere la stessa procedura cambiando il numero di riga e colonna ? :confused:
    Esempio:
    codice:

    .Tables(1).Cell(2, 1).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 2) & “”
    .Tables(1).Cell(2, 2).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 3) & “”
    .Tables(1).Cell(2, 3).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 8) & “”
    .Tables(1).Cell(2, 4).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 9) & “”
    .Tables(1).Cell(2, 5).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 10) & “”
    .Tables(1).Cell(2, 6).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 17) & “”
    .Tables(1).Cell(2, 7).Range.Text = ” ” & MSFlexGrid1.TextMatrix(1, 19) & “”
    .Tables(1).Cell(3, 1).Range.Text = ” ” & MSFlexGrid1.TextMatrix(2, 2) & “”
    .Tables(1).Cell(3, 2).Range.Text = ” ” & MSFlexGrid1.TextMatrix(2, 3) & “”
    .Tables(1).Cell(3, 3).Range.Text = ” ” & MSFlexGrid1.TextMatrix(2, 8) & “”
    .Tables(1).Cell(3, 4).Range.Text = ” ” & MSFlexGrid1.TextMatrix(2, 9) & “”
    .Tables(1).Cell(3, 5).Range.Text = ” ” & MSFlexGrid1.TextMatrix(2, 10) & “”
    .Tables(1).Cell(3, 6).Range.Text = ” ” & MSFlexGrid1.TextMatrix(2, 17) & “”
    .Tables(1).Cell(3, 7).Range.Text = ” ” & MSFlexGrid1.TextMatrix(2, 19) & “”

    o c’è un modo più veloce ed automatico? 🙂

  • cardi L'autore dell'articolo

    Ciao
    Innanzitutto questa non è la sezione adatta per questo commento, potevi chiedere nel nostro forum
    poi per risolvere il tuo problema basta usare i cicli. Se non li dai usare guarda le guide di HTML.it, magari prima guarda una guida generale sulla programmazione.
    Infine il mio consiglio è quelli di passare ad un altro linguaggio (consiglio il php perché da anche una base sul c), perché l’asp è superato e anche se all’inizio sembra più semplice degli altri, per chi non ha mai programmato o ha solo programmato in vb, poi si scopre che molte cose non si possono fare se non con operazioni complesse(es: upload dei file in http)