Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2691 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  cryptage des mots de passe pour oracle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

cryptage des mots de passe pour oracle

n°1329491
___
Posté le 21-03-2006 à 14:39:57  profilanswer
 

bonjour,
 
comment faire pour enregistrer des mots de passe dans Oracle de facon cryptée, pour les rendre illisibles.
 
Quels est le type du champ à créer et comment le coder sous Oracle ?
 
merci

mood
Publicité
Posté le 21-03-2006 à 14:39:57  profilanswer
 

n°1329629
olivthill
Posté le 21-03-2006 à 16:43:59  profilanswer
 

Bonjour cher ou chère ___
 
Un mot de passe est un mot, donc il s'enregistre comme n'importe quel mot.
Si le mot de passe de 'Toto' est "chandernagor", alors on peut l'enregistrer avec

INSERT INTO tb_user (user_id, user_name, user_pwd)
VALUES (123, 'Toto', 'chandernagor');


Mais peut-être que la question est : comment créer un mot de passe ?
Il existe beaucoup de méthodes différentes, mais cette création ne se fait habituellement pas en SQL qui est un langage d'interrogation de base de données. Cette création se fait dans le langage qui contient les appels SQL, qui peut-être le langage C, le PHP, le PL/QL ou autre. Pour répondre, il faudrait nous dire quel langage et algorithme de cryptage il faut utiliser.
 
Petite astuce à connaitre : si le mot de passe est susceptible de contenir des caractères dont la valeur Ascii est inférieure ou égale à 32 (32 est le code de l'espace, et les caractères inférieurs sont dit "non-impimables" comme le retour charriot, le zéro binaire, etc.), alors il ne faut pas stocker ce mot de passe dans un champ déclaré en varchar ni en varchar2, mais en char. Mais on a moins de soucis quand le mot de passe ne contient que des caractères imprimables, sans espace à la fin.


Message édité par olivthill le 21-03-2006 à 17:02:31
n°1329694
orafrance
Posté le 21-03-2006 à 17:44:30  profilanswer
 

Regarde du coté du package dbms_obfuscation_toolkit qui contient des procédures pour crypter/décrypter :)
 
Le plus simple étant de créer un user Oracle ;)

n°1329697
abdeleloma​ri
Posté le 21-03-2006 à 17:45:36  profilanswer
 

POur crypter les données sous Oracle il existe un package Oracle :
DBMS_OBFUSCATION_TOOLKIT
 
Si tu veux plus de détail n'hésites pas je pourrais t'envoyer la doc complete du package.
 

n°1329766
moi23372
Posté le 21-03-2006 à 20:25:43  profilanswer
 

les packages de crypto d'oracle ne marche vraiment pas bien du tout et ne sont pas très éfficace niveau sécurité (facile à déchiffré).  
Moi ce que je te conseille donc c'est de chiffré le mot de passe avec l'applic qui fait tourné la bd.  
 
Prennons mon exemple actuellement, mon mot de passe arrive à mes WebServices JAVA, un digest est crée a partir du password, et enregistré dans la base de données.

n°1329870
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-03-2006 à 23:46:36  profilanswer
 

tain, faut que Marc arrète la binouse pour accepter des pseudos pareils  [:mlc]

n°1330001
___
Posté le 22-03-2006 à 10:34:29  profilanswer
 

tout d'abord merci pour vos réponses.
 
en fait sous mySql, il existe un fonction md5 (à partir du php) qui me permet de crypter le mot de passe dans la BD (et pas de l'enregistrer en clair comme le dit olivthill ).
 
Donc je cherchais un truc simple équivalent sous Oracle.  
Je suis d'accord pour faire l'insertion du mdp crypté par l'appli dans la base (

Citation :

chiffré le mot de passe avec l'applic qui fait tourné la bd.

),
 
mais dans ce cas quel type de champ dois-je faire ? (VARCHAR2 de combien par exemple ?)
 
;-)

n°1330003
skeye
Posté le 22-03-2006 à 10:36:54  profilanswer
 

Si tu veux stocker une version hashée le plus simple c'est de faire le hashage dans l'appli, non?
Dans le cas d'un md5, le hash est sur 32 caractères.;)


Message édité par skeye le 22-03-2006 à 10:37:05

---------------
Can't buy what I want because it's free -
n°1330014
___
Posté le 22-03-2006 à 10:50:07  profilanswer
 

c'est coOl, je vais tester cela.
 
thanks


Message édité par ___ le 22-03-2006 à 11:48:58
n°1330118
orafrance
Posté le 22-03-2006 à 12:35:35  profilanswer
 

___ a écrit :


en fait sous mySql, il existe un fonction md5 (à partir du php) qui me permet de crypter le mot de passe dans la BD (et pas de l'enregistrer en clair comme le dit olivthill ).


 
DBMS_OBFUSCATION_TOOLKIT.MD5 :D

mood
Publicité
Posté le 22-03-2006 à 12:35:35  profilanswer
 

n°1331162
___
Posté le 23-03-2006 à 16:08:51  profilanswer
 

comment utiliser le package DBMS_OBFUSCATION_TOOLKIT.MD5 ?
 
car dans une requete comme celle-ci il y a un pb:
 

Code :
  1. insert into ... values (DBMS_OBFUSCATION_TOOLKIT.MD5('toto'),...);


 
mon champ est RAW(16)
 
mais j'ai une erreur ORA06553 :... too many declarations of MD5 in this call.
 
Qu'est ce que ça veut dire ?

n°1331533
orafrance
Posté le 24-03-2006 à 11:06:09  profilanswer
 

Code :
  1. SQL> CREATE FUNCTION md5(v_in VARCHAR2)
  2.   2  RETURN VARCHAR2
  3.   3  IS
  4.   4  result VARCHAR2(4000);
  5.   5  BEGIN
  6.   6  result := dbms_obfuscation_toolkit.md5(input_string=>v_in);
  7.   7  RETURN result;
  8.   8  END;
  9.   9  /
  10. Fonction créée.
  11. SQL> select md5('toto') from dual;
  12. MD5('TOTO')
  13. --------------------------------------------------------------------------------
  14. ¿¿Rb¿?¿¿z¿¿¿u%

n°1331538
___
Posté le 24-03-2006 à 11:08:58  profilanswer
 

merci,
 
on est obligé de créer un fonction PLSQL, le package n'est pas utilisable directement?
 
quel est le type retourné par la fonction jsuste ci -dessus md5 ?
 
car je vois VARCHAR2(4000), j'ai aussi lu sur le net des RAW(16), au dessus on me dit 32...
 
Cette méthode me convient quand meme ;-)


Message édité par ___ le 24-03-2006 à 11:12:42
n°1331568
orafrance
Posté le 24-03-2006 à 11:30:34  profilanswer
 

ici c'est du varchar :
RETURN VARCHAR2 ;)

n°1331583
___
Posté le 24-03-2006 à 11:39:54  profilanswer
 

de quelle taille stp, il faudrait que je l'enregistre dans ma base ;-)
 
VARCHAR2(???)

n°1331624
orafrance
Posté le 24-03-2006 à 12:08:51  profilanswer
 

aucune idée... :/

n°1331653
skeye
Posté le 24-03-2006 à 12:58:18  profilanswer
 

http://fr.php.net/md5
 
Ici ils annoncent 32, et à priori l'algorithme est le même pour tout le monde...;)


---------------
Can't buy what I want because it's free -
n°1334803
___
Posté le 29-03-2006 à 18:25:00  profilanswer
 


j'ai mis un varchar(32) et ça fonctionne.
 
merci à vous !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  cryptage des mots de passe pour oracle

 

Sujets relatifs
[Oracle 9i]Export résultat de requête SQL vers fichier XML?connexion à une base de données oracle en vb excel
Mot de passe sur dossierfonction cryptage et envoie dans mysql
protocole de sécurité / cryptage des données[Oracle][sqlldr] enregistrement de taille variable
toad oracle[Oracle] se connecter sur Oracle 8i via oci
Sauvegarde d'une instance oracle à froidSe connecter à une Base ORACLE avec SQL SERVER 2005
Plus de sujets relatifs à : cryptage des mots de passe pour oracle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR