Oracle 8i, Md5, php

Signaler
Messages postés
13
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
8 février 2010
-
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
-
Bonjour,
Voilà j'ai une BDD en oracle 8i contenant des noms et des mots de passes, je voudrais cripter le mot de passe avec MD5, et le problème c'est que quand je fait du methode post ex:$pass = md5($_POST['pass']), le resultat n'est pas le même que dans oracle.

Comment faire, et merci pour votre aide.
Ryan

12 réponses

Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
As tu consulté les docs de PHP et Oracle pour savoir comment étaient générés les MD5 ?
Quelle différence constates-tu ? As-tu un exemple ?
S.
Messages postés
13
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
8 février 2010

Voici par exemple la methode de cryptage
php :
md5($_POST['pass'])

oracle :
CREATE OR REPLACE FUNCTION RBSFACTURE.md5hash (v_input_string IN VARCHAR2)
   RETURN VARCHAR2
IS
   v_checksum   VARCHAR2 (20);
BEGIN
   v_checksum :DBMS_OBFUSCATION_TOOLKIT.md5 (input_string     > v_input_string);
   RETURN v_checksum;
END;


et le resultat c'est tout à fait different.
Ryan
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Un MD>5 fait 40 octets, pas 20.


--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
C'est pas 32 caractères ??
J'ai jamais compté.
un ptt coup d'oeil ??
S.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Ah merde ouais, c'est sha1 sur 40. Au temps pour moi.
Mais pas 20 quoi qu'il en soit. Et un VARCHAR c'est inutile (même si Oracle stocke ça sur un octet de moins que MySQL), un CHAR est plus adapté (puisqu'une signature md5 ou sha1 fait TOUJOURS la même longueur)

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
13
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
8 février 2010

merci pour votre réponses mais ça ne marche pas encore


Ryan
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Tu peux nous donner un exemple du résultat ?
Prends une chaine commune,passe-la d'après les 2 méthodes et donne nous le résultat des deux.
Je trouve ça bizarre.
Pour Neige, je suis d'accord, le SHA-1 est plus sur mais pour un usage primaire où la sécurité est secondaire face à l'unicité et la population des données hashées, on reprend les mauvaises habitudes ...md5 !! LOL !!
S.
Messages postés
13
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
8 février 2010

oui bien sûr
voici ce qui est généré par md5 php :
86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
et voici ce qui vien de l'oracle:
Áu¹Àñ¶¨1Ã?âiw&a

juste une petite remarque c'est que j'ai déjà mes données sur oracle que je voudrai crypter afin que php le reconnaisse. le liaison php oracle ça marche nickel mais le problème c'est au niveau du cryptage d'un champ.

Merci

Ryan
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Y'a peut etre un souci d'encodage sur Oracle.Tu pourrais voir les paramètrages de ton Oci, ou alors travailler en UTF8 pour convertir ce qui vient d'Oracle.
Pour info: Á = c3 81 Le 8 n'est peut-être pas anodin..
A cogiter tout ça.
S.
Messages postés
13
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
8 février 2010

ok merci pour ton repnse je vais voir ça.

Ryan
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
Bonjour,

tente d'ajouter un v_checksum := RAWTOHEX (UTL_RAW.cast_to_raw (v_checksum))
si mes souvenirs sont bons DBMS_OBFUSCATION_TOOLKIT.md5 retourne en RAW (d'ou peut être la différence d'affichage)

bonne journée
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Essaie de voir autour des paramètres NLS.. genre NLS_LANG ou autre
Fais un SELECT * FROM NLS_SESSION_PARAMETERS
au cas ou.. ça peut te donner une piste.
S.