Bonjour,
Je travaille sous un environnement de développement et sous un environnement de recette ayant même version d'Oracle :
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
PL/SQL Release 9.2.0.8.0 - Production
CORE 9.2.0.8.0 Production
TNS for IBM/AIX RISC System/6000: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production
et les outils
Forms [32 bits] Version 9.0.4.0.19 (Production)
Je cherche à crypter des mots de passe et je suis donc ce tuto.
Dans un forms, je crée aléatoirement un mot de passe :
1 2 3
| SELECT to_char( dbms_random.string('L', 1) || dbms_random.string('A', 8) || trunc(dbms_random.value(0,9)))
INTO pwd_tmp
FROM dual; |
avec pwd_tmp VARCHAR2(25);
J'insère ce mot de passe seulement après l'avoir crypté :
SELECT cryptage_mdp3.encrypt(pwd_tmp) INTO pwd_tmp_crypt FROM DUAL;
avec pwd_tmp_crypt VARCHAR2(25);
La colonne de la table recevant ce mot crypté est de type VARCHAR2(25).
Or, en environnement de dév, aucun problème pour décrypter le mot de passe par contre en recette, cela ne fonctionne pas : le mot crypté semble contenir des points d'interrogation à l'envers, par exemple ð¬û¿N¿KÐA¿³¿Ûmz et je n'obtiens pas la même chose qu'en dév; alors, forcément au décryptage, ça ne correspond plus du tout au mot initial.
Par contre si je lance sous TOAD ou SQLPLUS un
INSERT ma_table VALUES ('Login1', cryptage_mdp3.encrypt('motDePasse1'));
cela fonctionne ...
Est-ce que quelqu'un voit pourquoi ? une variable d'environnement ?
Par avance merci
Partager