Bonjour, Je vous partage mes trois procédures qui permet de générer des mots de passe à chaine aléatoire. Si vous aimez, un petit j’aime fait plaisir.... Génération d'un token : Code (Text): PROCÉDURE TokenChaineOLD(nN) InitHasard() sChaîneAléatoire est une chaîne BOUCLE (nN) nCaractère est un entier = Hasard(65,122) TANTQUE (91 <= nCaractère <= 96) nCaractère = Hasard(65,122) FIN sChaîneAléatoire += Caract(nCaractère) FIN RENVOYER sChaîneAléatoire Génération d'un mot de passe : Code (Text): PROCÉDURE GenPasswordOLD(sPass est une chaîne) sSalt est une chaîne = TokenChaine(8) bufHash_Binaire est un Buffer = HashChaîne(HA_HMAC_SHA_160, sPass+sSalt, sSalt) sHash_Hexa est une chaîne POUR nIndice = 1 _À_ Taille(bufHash_Binaire) sHash_Hexa += NumériqueVersChaîne(Asc(bufHash_Binaire[[nIndice]]),"02x") FIN sHashDecrypt est une chaîne = Crypte(sHash_Hexa, "", crypteRapide + compresseChaîneCourte, encodeBASE64) sHashDecrypt = Remplace(sHashDecrypt,RC,"") RENVOYER sSalt+sHashDecrypt et pour vérifier le mot de passe : Code (Text): PROCÉDURE VerifPasswordOLD(sHashVerif est une chaîne, sPass est une chaîne) sSalt est une chaîne = Gauche(sHashVerif,8) sHash est une chaîne = Milieu(sHashVerif,9) sHashDecrypt est une chaîne = Décrypte(sHash, "", crypteRapide + compresseChaîneCourte, encodeBASE64) bufHash_Binaire est un Buffer POUR nInd = 1 _À_ Taille(sHashDecrypt) PAS 2 bufHash_Binaire += Caract(Val(sHashDecrypt[[nInd SUR 2]], "x")) FIN SI HashVérifieChaîne(HA_HMAC_SHA_160, sPass+sSalt, bufHash_Binaire, sSalt) = Vrai ALORS RENVOYER Vrai SINON RENVOYER Faux FIN Bon test
Bonsoir, Je viens de tester le projet. Sous Windows c'est très bien. Il faut maintenant qu'on travaille pour qu'il soit multiplateforme, pour cela il faut résoudre le problème du UTF8, il faut faire les conversions. Par exemple, WM est presque toujours sous Unicode. en ANSI c'est impécable
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! Bonjour, Je vous partage mes trois procédures qui permet de générer des mots de passe à chaine aléatoire. Si vous aimez, un petit j’aime fait plaisir.... Génération d'un token : Code (Text): PROCÉDURE TokenChaineOLD(nN) InitHasard() sChaîneAléatoire est une chaîne BOUCLE (nN) nCaractère est un entier = Hasard(65,122) TANTQUE (91 <= nCaractère <= 96) nCaractère = Hasard(65,122) FIN sChaîneAléatoire += Caract(nCaractère) FIN RENVOYER sChaîneAléatoire Génération d'un mot de passe : Code (Text): PROCÉDURE GenPasswordOLD(sPass est une chaîne) sSalt est une chaîne = TokenChaine(8) bufHash_Binaire est un Buffer = HashChaîne(HA_HMAC_SHA_160, sPass+sSalt, sSalt) sHash_Hexa est une chaîne POUR nIndice = 1 _À_ Taille(bufHash_Binaire) sHash_Hexa += NumériqueVersChaîne(Asc(bufHash_Binaire[[nIndice]]),"02x") FIN sHashDecrypt est une chaîne = Crypte(sHash_Hexa, "", crypteRapide + compresseChaîneCourte, encodeBASE64) sHashDecrypt = Remplace(sHashDecrypt,RC,"") RENVOYER sSalt+sHashDecrypt et pour vérifier le mot de passe : Code (Text): PROCÉDURE VerifPasswordOLD(sHashVerif est une chaîne, sPass est une chaîne) sSalt est une chaîne = Gauche(sHashVerif,8) sHash est une chaîne = Milieu(sHashVerif,9) sHashDecrypt est une chaîne = Décrypte(sHash, "", crypteRapide + compresseChaîneCourte, encodeBASE64) bufHash_Binaire est un Buffer POUR nInd = 1 _À_ Taille(sHashDecrypt) PAS 2 bufHash_Binaire += Caract(Val(sHashDecrypt[[nInd SUR 2]], "x")) FIN SI HashVérifieChaîne(HA_HMAC_SHA_160, sPass+sSalt, bufHash_Binaire, sSalt) = Vrai ALORS RENVOYER Vrai SINON RENVOYER Faux FIN Bon test Cliquez pour agrandir...
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! Je vous remercie. Cliquez pour agrandir...
Pour que tu comprennes bien, Quand tu es entre plusieurs plateforme, Tu peux bosser en Unicode, mais en cas de cryptage, il vaut mieux être en UTF8 au niveau des chaine