CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Algo de cryptage d'e-mail

Pseudo supprimé
Pseudo supprimé 26 mars 2015 à 19:28:55

Voici la fonction qui permet de crypter une adresse e-mail en fonction d'une clef :

http://pastebin.com/g8eBuPZw

Et la fonction inverse :

http://pastebin.com/9ifehiJ1

Si vous regardez les exemples c'est basé sur la même e-mail inexistante.

Qu'en pensez-vous ? Des choses à améliorer ?

Pseudo supprimé
Pseudo supprimé 26 mars 2015 à 20:41:14

:up:

Pseudo supprimé
Pseudo supprimé 27 mars 2015 à 07:54:09

:up:

vava740
vava740
Niveau 10
27 mars 2015 à 09:32:25

Ne fais pas ta propre crypto (à moins que ce soit vraiment ton domaine d'expertise). Utilise des algorythmes reconnus et éprouvés, tels que l'AES256 pour un chiffrement symétrique, que tu peux utiliser en PHP avec les fonctions mcrypt_.

Dark_Chouhartem
Dark_Chouhartem
Niveau 11
27 mars 2015 à 09:40:38

D’ailleurs même les experts dans le domaine se cassent la gueule dessus :oui:

Pseudo supprimé
Pseudo supprimé 27 mars 2015 à 12:32:54

Le 27 mars 2015 à 12:21:04 bluepoint_ a écrit :
Tu peux nous expliquer ce que fait précisément ta fonction (ou donner une version algorithmique) ? :-)

Bah, il a donné le code source. :sarcastic:

Pseudo supprimé
Pseudo supprimé 27 mars 2015 à 13:53:14

Ce que fais ma fonction ?

Tu prend une adresse mail.
Tu sais que seuls les caractères suivants peuvent former une adresse mail :

egxy-jdt18@93ami064wh_zq2lvf7onr5sp.ubkc

Là la chaine est mélangée.
Dans un ordre plus lisible :

0123456789abcdefghijklmnopqrstuvwxyz-@_.

Tu met au début de la chaine un ! car sa valeur est 0

Tu prend une email et pour chaque caractère tu le recherches dans l'alphabet présenté plus haut.
Sa position, donnée par $i, te donne un nombre.

Tu additionnes ce nombre avec un autre fonctionnant sur le même principe mais avec le md5 d'un code unique (la clef)

Pour éviter de deviner le md5 on ajoute un salt.

Ainsi si qqun accède à ta base de donnée les e-mails seront cryptées et tant qu'il n'aura pas le code source il ne saura pas les déchiffrer.

:)

Pseudo supprimé
Pseudo supprimé 27 mars 2015 à 13:58:20

Je sais c'est dur à comprendre mais le principe est simple.

Pseudo supprimé
Pseudo supprimé 27 mars 2015 à 14:12:36

Le 27 mars 2015 à 14:11:17 bluepoint_ a écrit :
Ah, ben j'ai rien compris ^^

Le code source explique mieux que moi :nah:
Puis tu peux tester le code aussi :oui:

Pseudo supprimé
Pseudo supprimé 27 mars 2015 à 14:40:25

Le 27 mars 2015 à 09:32:25 vava740 a écrit :
Ne fais pas ta propre crypto (à moins que ce soit vraiment ton domaine d'expertise). Utilise des algorythmes reconnus et éprouvés, tels que l'AES256 pour un chiffrement symétrique, que tu peux utiliser en PHP avec les fonctions mcrypt_.

ça.
aussi, on dit chiffrement, pas cryptage.

Romuald_78
Romuald_78
Niveau 5
27 mars 2015 à 14:47:02

En fait c'est un chiffrement par substitution ton algo alors !?
Ca ressemble a un algo de chiffrement par substitution polyalphabetique.

Ce genre d'algorithmes est cassable si on utilise de longs textes et c'est le cas avec des emails.
Les techniques utilisées sont dites par "analyses frequentielles". On estime la probabilité d'apparition d'un element en fonction d'un dictionnaire connu (si par exemple on estime que tes mails sont ecrits en francais, la lettre e apparait plus souvent etc... ou bien après on cherche les probabilités d'apparitions de suites de lettres (par exemple la lettre q apparait très souvent voire quasi tt le temps avant un u , etc.....)

Et par déduction statistique on peut arriver à decrypter le message chiffré.

Est-ce que ton code ne ferait pas carrément une substitution monoalphabetique (un caractere remplacé toujours par le meme autre ?) : dans ce cas c'est encore plus vite cassé (chiffrement de César, ROT13, ...)
Si ton code fait une substitution polyalphabetique, alors regarde cet article sur le chiffrement de Vigenere :
http://fr.wikipedia.org/wiki/Cryptanalyse_du_chiffre_de_Vigen%C3%A8re
Ca resume bien ce que je t'ai dit.

Le 27 mars 2015 à 09:32:25 vava740 a écrit :
Ne fais pas ta propre crypto (à moins que ce soit vraiment ton domaine d'expertise). Utilise des algorythmes reconnus et éprouvés, tels que l'AES256 pour un chiffrement symétrique, que tu peux utiliser en PHP avec les fonctions mcrypt_.

Exactement : c'est un conseil très sage ;)
Sauf si tu cherches à te faire la main sur le monde de la cryptographie, bien sur d'un point de vue pédagogique c'est toujours très bien de faire ce genre de choses.

Bravo en tout cas pour ton algo : l'important c'est déjà qu'il soit fonctionnel mais il ne faut pas que tu cherches à protéger des secrets d'état avec ça ;)

Message édité le 27 mars 2015 à 14:48:07 par Romuald_78
Romuald_78
Romuald_78
Niveau 5
27 mars 2015 à 14:55:28

Pour info dans ton code, tu peux remplacer :
$y=100;
par :
break;
pour sortir de ta boucle, c'est plus propre pour la comprehension des gens.
Pourquoi tu as mis 100 en dur dans ta boucle ? il y a une raison ? Car je vois comme un probleme :
{ $lm = strlen($m);$end = ""; $md = md5("pMt7".$hm."vGa0!").substr(md5("#nQ6".$hm."84lx"),6,3); $arr1 = "!egxy-jdt18@93ami064wh_zq2lvf7onr5sp.ubkc"; $arr2 = "!bae65709df281c43"; $arrend = "!!Dn13xX9PmqhOVp2tsI5bHUeRBYA8ZSvdfGCNEayzJi7kWw4TugMlroL6FjQ0Kc"; for($i=0;$i<$lm;$i++) { $cn1=0;for($y=0;$y<100;$y++){if($m[$i]==$arrend[$y]){$cn1=$y;$y=100;}} $cn2=0;for($y=0;$y<100;$y++){if($md[$i]==$arr2[$y]){$cn2=$y;$y=100;}} $limit=$cn1-$cn2;$end.=$arr1[$limit]; }return $end; }
Si $y ca jusqu'à 100 mais que tu cherches à l'utiliser pour accéder à $arrend ou $arr2 tu vas dévorder et aller lire en dehors de la mémoire non !? $arrend a une longueur de moins de 70 caracteres et $arr2 a une longueur de moins de 20. Tu accedes a de la mémoire interdite mec ;) : en Java ca crash meme à l'execution ton code la :)

Message édité le 27 mars 2015 à 14:56:07 par Romuald_78
Romuald_78
Romuald_78
Niveau 5
27 mars 2015 à 16:08:19

Le 27 mars 2015 à 14:11:17 bluepoint_ a écrit :
-Si tu utilises une clef pour plusieurs mails, alors comme le dit Romuald, c'est au mieux du Vigenère (enfin j'suppose, j'ai toujours pas bien compris comment ça marchait) et au niveau de la faiblesse, c'est ce qu'il a dit, mais en pire, car on peut exploiter la structure particulière des adresses mails.

Oh oui !!! j'avais pas pensé à ça !! le formalisme des emails ... wouah bah du coup l'analyse fréquentielle elle va aller plus vite forcément ;)

Bonne remarque BluePoint :)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware