Version complète: sur le forum Webmaster Hub : Crypter / decrypter un email
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
-ZN-
Bonjour,

j'aimerai crypter une partie d'un email (un numéro de carte de credit) que je génère en PHP. Il faudrait que le systeme soit bassé sur un systeme de clefs afin que seuls ceux qui ont la bonne clef puissent décrypter ce numéro.

Comment faire ça simplement?

Merci d'avance pour vos idées / suggestions,

ZN
Kwiz
Bonjour,

Pour la théorie :
http://www.php.net/manual/fr/ref.mcrypt.php

Pour la pratique :

Script extrait et simplifié de celui-ci :
http://www.phpfrance.com/tutoriaux/exemples/38.php

Détails avec ce tutorial :
http://www.phpfrance.com/tutoriaux/index.p...nt-mcrypt-ripat

Gost en mode cbc est très rapide pour crypter.

CODE
<?php
/*
*
* Cryptage v1.0
*
* Exemple :
* $IV         = '8cHv2AR1';
* $Cle        = 'XCp3ACWciuP8l9Zxp1uNiWTxt8xqCB6J';
* $TxtCrypt   = $IV . Crypte($IDCommande, $Cle, 8, 'gost', 'cbc', $IV);
* $TxtDeCrypt = Decrypte(substr($TxtCrypt,8), $Cle, 8, 'gost', 'cbc', substr($TxtCrypt,0,8));
*
*/
function Crypte($Texte, $Cle, $TailleCle, $Algo, $Mode, $IV){
    $Cle         = substr($Cle, 0, $TailleCle);
    $TexteCrypte = mcrypt_encrypt($Algo, $Cle, $Texte, $Mode, $IV);
    return base64_encode($TexteCrypte);
}

function Decrypte($Texte, $Cle, $TailleCle, $Algo, $Mode, $IV){
    $Texte       = base64_decode($Texte);
    $Cle         = substr($Cle, 0, $TailleCle);
    $TexteClair  = mcrypt_decrypt($Algo, $Cle, $Texte, $Mode, $IV);
    return trim($TexteClair);
}
?>


Il vaut mieux générer le IV et la clé à chaque fois avec md5() par exemple.

Kwiz
-ZN-
Merci Kwiz pour ces infos j'analyse tout ça dès demain smile.gif

tu preferes de cryptage Gost au 3DES? (c'est plus repandu le 3DES si je me souviens bien?)
Kwiz
CITATION(-ZN- @ mardi 28 février 2006, 16h03)
Tu preferes de cryptage Gost au 3DES? (c'est plus repandu le 3DES si je me souviens bien?)
*


J'ai pris le plus rapide avec une clef de 32 caractères, suis le lien vers phpfrance et cliques sur vérifier avec timing.

Après je n'y connais rien en cryptage et efficacité des algos de chiffrement.

Kwiz
Kwiz
Voilà le lien vers un tutoriel sur le chiffrement lié à la page de test citées précedement :

La librairie de chiffrement mcrypt ripat
-ZN-
merci pour ces infos smile.gif

CITATION
Il vaut mieux générer le IV et la clé à chaque fois avec md5() par exemple


bonne idée mais il faut que stocke tout ça alors. Attention à ce que cela ne soit pas stocké à côté du texte crypté ...
NorSeb
Bonjour,

Pardon mais je pense que transmettre des données critiques comme un code CB est dangereux pour ne pas dire stupide. Les banques ne le font plus, sous quelque forme que ce soit (tickets, mail ou autre)...

Tu peux d'ores et déja considérer que si tu crypte quoique ce soit qui soit décryptable, tu prends un risque.
Kwiz
CITATION(-ZN- @ mardi 28 février 2006, 16h51)
bonne idée mais il faut que stocke tout ça alors. Attention à ce que cela ne soit pas stocké à côté du texte crypté ...
*


Le IV accompagne déjà le texte crypté (cf mon code) par contre tu dois stocker la clef.

Kwiz
Kwiz
J'oubliai, pourquoi n'utilises-tu pas un système de paiment sécurisé type PayPal ou une banque ?

Kwiz
-ZN-
Oops pardon de ne pas avoir repondu plus tôt.

Je suis en Angleterre et le systeme bancaire n'est pas exactement pareil qu'en france (enfin je crois).

Je suis en train de mettre en place un systeme de paiement international fonctionnant sur des cartes de credit (pas des cartes de debit), qui collecte de l'argent automatiquement tous les x mois (comme un abonnement).

Si le client utilise une carte de credit amex, visa, mastercard ca fonctionne nickel je collecte l'argent regulierement etc ...

par contre si le client veut payer avec une carte de debit solo, swith, maestro etc ... mes paiements "répétitifs" (recurrent en anglais) plantent et on doit tout se coltiner manuellement (le bonheur quoi)

C'est vrai que je prefererai ne transmettre/stocker aucun numéro de CB ... mais allez en parler a mon patron (veut pas m'entendre celui-là, meme quand j'ai raison. Assez frustrant comme sensation...)

paypal on oublie je ne vends pas des timbres tongue.gif edit: c'est de l'humour, hein?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.