Oracle 8i, Md5, php

ryanrina Messages postés 13 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 8 février 2010 - 5 févr. 2010 à 15:54
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 - 10 févr. 2010 à 13:44
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

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
5 févr. 2010 à 16:05
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.
0
ryanrina Messages postés 13 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 8 février 2010
5 févr. 2010 à 16:29
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
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
6 févr. 2010 à 15:41
Salut,

Un MD>5 fait 40 octets, pas 20.


--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
7 févr. 2010 à 07:36
C'est pas 32 caractères ??
J'ai jamais compté.
un ptt coup d'oeil ??
S.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
7 févr. 2010 à 23:24
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à ;)
0
ryanrina Messages postés 13 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 8 février 2010
8 févr. 2010 à 07:02
merci pour votre réponses mais ça ne marche pas encore


Ryan
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
8 févr. 2010 à 08:44
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.
0
ryanrina Messages postés 13 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 8 février 2010
8 févr. 2010 à 09:43
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
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
8 févr. 2010 à 10:31
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.
0
ryanrina Messages postés 13 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 8 février 2010
8 févr. 2010 à 13:40
ok merci pour ton repnse je vais voir ça.

Ryan
0
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
10 févr. 2010 à 12:32
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
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
10 févr. 2010 à 13:44
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.
0
Rejoignez-nous