2010-06-08 15 views

Répondre

2

Selon exactement ce que "la valeur MD5 majuscules de l'équivalent ASCII" signifie, vous probablement soit voulez:

md5(strtoupper($secretword));

ou

strtoupper(md5($secretword));

PHP a assez bonne documentation - un coup d'oeil à http://www.php.net/md5 et http://www.php.net/strtoupper

+0

il n'y a rien d'ASCII lié dans l'une ou l'autre des deux approches. Le premier est en train de se brancher sur le système, puis de le faire, ce qui n'est pas ce que le PO a demandé, puisqu'il a demandé une valeur md5 en majuscule. Le deuxième livre cela, mais il prend les caractères du mot pour l'entrée, pas leur équivalent en valeur ASCII. C'est un résultat de hachage différent. – Gordon

+1

@Gordon En effet pas. Il a semblé une demande assez bizarre à MD5 les valeurs d'ascii; Je pense qu'il est plus logique de supposer que le PO était un peu confus au sujet des jeux de caractères et par «équivalent ASCII», il signifie le texte (ascii) plutôt que, disons, quelque chose dans ISO-8859-1 ou autre. Bien sûr, ça n'a toujours pas beaucoup de sens avec un mot secret comme 'dirtydawg' :) – Chris

1

Je ne sais pas ce que vous entendez par « équivalent ASCII », mais je suppose que ce que vous demandez est le suivant:

$hash = strtoupper(md5('dirtydawg')); 

Ou suis-je manque quelque chose?

4

En supposant par « équivalent ASCII », vous entendez tous les caractères du mot étant des valeurs ASCII, vous pouvez faire

strtoupper(md5(implode(array_map('ord', str_split('dirtydawg'))))); 

qui équivaut à

$secretWord = 'dirtydawg'; 
$hash = ''; 
for($i = 0; $i < strlen($secretWord); $i++) { 
    $hash .= ord($secretWord[$i]); 
} 
echo strtoupper(md5($hash)); 

Voir aussi le manuel PHP sur

  • ord - Valeur ASCII de retour du caractère
+0

Oups: >> exploser ('', 'dirtydawg'); Exception (code: 0) a été levée exception 'Exception' avec le message '/usr/share/php/php-shell-cmd.php(121): eval()' d code: 1 explode(): délimiteur vide 'dans /usr/share/php/php-shell-cmd.php:54 – hurikhan77

+1

@ hurikhan77 corrigé. changé en str_split. – Gordon

+0

Cela fonctionne mieux: md5 (join (array_map ('ord', str_split ('dirtydawg')))); – hurikhan77