Excel formation - Page de vente TCd - 11 Découvrez la méthode complète pour analyser les données efficacement et sans effort avec les tableaux croisés dynamiques, en cliquant ici

Comment tirer une lettre aléatoire pour créer un mot de passe incrackable – La fonction CAR() d’Excel

Aujourd’hui, je vais vous présenter la fonction CAR() d’Exel, qui permet de retourner un caractère spécifique (une lettre, un chiffre, un signe de ponctuation,…) en fonction d’un argument que nous lui spécifions. Nous verrons que grâce à cette fonction nous allons pouvoir simplement tirer une lettre au hasard, ou encore générer un mot de passe tellement complexe qu’il sera impossible de le deviner.

 

Téléchargement

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

1. Présentation

La fonction CAR(), qui nous intéresse dans le cadre de ce tutoriel permet de générer un caractère particulier, représenté par le jeu de caractère du poste de travail sur lequel celle-ci est utilisée (ANSI ou Macintosh pour les plus répandus).

Dans un précédent tutoriel, nous avons déjà eu l’occasion de découvrir une fonction très proche de la fonction CAR(), il s’agissait de la fonction UNICAR().

Nous avions alors vu que cette fonction UNICAR(), introduite depuis la version 2013 d’Excel permet de récupérer le caractère Unicode qui correspond au nombre spécifié en paramètre.

La principale différence entre ces deux fonctions vient du fait que la fonction CAR() est limitée aux 255 caractères disponibles avec la norme ANSI de Microsoft, là où UNICAR() est tout à fait capable d’en gérer un très grand nombre. De nouveaux caractères étant par ailleurs ajoutés au fil des mises-à-jour de la norme Unicode.

Pour faire simple, la fonction UNICAR() est la version plus moderne de la fonction CAR(),

En dehors de cela, les deux fonctions fonctionnent de la même manière, celles-ci n’attendant qu’un seul argument :

 

 =CAR(A7) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 01

Et :

 

 =UNICAR(A7) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 02

Pour cet exemple, nous cherchons à afficher les 255 caractères retournés par les deux fonctions.

Après avoir saisis la première ligne, il suffit de sélectionner les deux cellules correspondantes et de double cliquer sur la poignée de recopie pour étendre instantanément la formule sur toutes les lignes :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 03

Nous pouvons alors constater que les résultats retournés sont strictement identiques dans les deux colonnes !

Et nous pouvons par ailleurs en tirer deux conclusions.

Tout d’abord, si nous ajoutons une ligne en dessous du tableau avec le nombre 256 saisi dans la première colonne, puis que nous étendons les formules sur cette nouvelle ligne :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 04

Nous allons alors constater que la fonction UNICAR() va nous retourner le caractère « Ā », tandis que la fonction CAR() va retourner une erreur #VALEUR !

La raison est très simple, et comme nous l’avons vu précédemment cette erreur vient du fait que la fonction CAR() ne peut avoir comme argument qu’un nombre compris entre 1 et 255, ce qui correspond à la norme ANSI.

En revanche, la fonction UNICAR() utilisant la norme Unicode, elle est apte à retourner un très nombre de caractères.

Le second point remarquable se trouve sur les premiers caractères :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 05

Nous pouvons ici constater que les premiers caractères ne sont pas directement exploitables, et nous devons nous rendre sur la ligne contenant l’ID 33 pour apercevoir le premier caractère lisible :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 06

 

2. Tirer un caractère aléatoire

À partir de la table que nous venons de mettre en place, nous pouvons maintenant utiliser la fonction CAR() pour extraire des caractères aléatoirement, en utilisant comme paramètre une valeur tirée elle-même au hasard !

Et pour cela, nous allons utiliser la fonction ALEA.ENTRE.BORNES() que nous avons déjà découverte dans un précédent tutoriel.

Celle-ci permet de récupérer simplement une valeur comprise entre un nombre minimum et un maximum.

Nous avons vu que la fonction CAR() permet de retourner un caractère lisible tant que l’argument est compris entre 33 et 255 :

 

 =CAR(ALEA.ENTRE.BORNES(33;255)) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 07

Ensuite, il suffit d’appuyer sur la touche [F9] du clavier pour relancer un nouveau calcul d’Excel et donc modifier la valeur de la cellule :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 08

Si nous souhaitons que le résultat retourné soit uniquement l’une des lettres de l’alphabet, nous allons alors de voir limiter le résultat de la fonction ALEA.ENTRE.BORNES() à un nombre compris entre 65 et 90 :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 09

 

 =CAR(ALEA.ENTRE.BORNES(65;90)) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 10

Pour que la lettre tirée soit indifféremment majuscule ou minuscule nous allons devoir ruser légèrement.

En effet, nous venons de voir que les lettres majuscules sont situées aux valeurs 65 et 90 et les lettres minuscules sont quant à elles aux valeurs 97 à 122 :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 11

Soit 32 caractères plus loin dans la liste.

Nous allons donc ajouter à la fonction ALEA.ENTRE.BORNE() un nouveau tirage donc le résultat pourra être égal à 0 ou 1, et ce résultat nous allons simplement le multiplier par 32 (sachant que 0x32 = 0 et 1x32 = 32) :

 

  =CAR(ALEA.ENTRE.BORNES(65;90)+ALEA.ENTRE.BORNES(0;1)*32) 

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 12

3. Un mot de passe impossible à deviner

Maintenant, en allant un cran plus loin, découvrons comment créer un mot de passe impossible à deviner.

Pour cela, il va simplement suffit d’utiliser les notions que nous venons de découvrir pour récupérer une succession de caractères aléatoires que nous concaténons les uns aux autres avec l’esperluette (ou la fonction CONCATENER()) :

 

  =CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))&CAR(ALEA.ENTRE.BORNES(33;255))  

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 13

Bien entendu, un mot de passe comme celui-ci est indéchiffrable, mais il est également très difficile à saisir étant constitué de nombreux caractères spéciaux.

Pour en simplifier la saisie, tout en le rendant presque impossible à retrouver, nous allons simplement borner le l’obtention du nombre aléatoire à 126, pour en obtenir le dernier caractère simple à saisir de la liste :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 14

Pour cela, nous sélectionnons deux cellules parmi laquelle se trouve la cellule sur laquelle nous souhaitons effectuer la modification :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 15

Puis, nous appelons la fonctionnalité de remplacement proposée par Excel que nous avons déjà eu l’occasion de découvrir dans un précédant tutoriel, afin de demander à Excel de remplacer tous les nombres « 255 » par des « 126 » :

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 16

Et voilà, notre nouveau mot de passe est maintenant près !

Excel formation - Tirer une lettre aléatoire - La fonction CAR - 17

 

 



Articles qui pourraient vous intéresser

Calculer le seuil de rentabilité sur Excel (Bonus : Représentation graphique)
Insérer un retour à la ligne dans une cellule Excel pour afficher plus d’informations
Comment écrire un texte à l’envers avec la fonction personnalisée INVERSER() en VBA Excel
Transférer un tableau (ou un graphique) Excel dans PowerPoint (actualisé automatiquement)
Comment garder les titres de colonnes toujours à l’écran sur Excel ?
Une Saisie ultra-rapide et automatisée sur Excel !
COMMENT CALCULER LE NOMBRE DE JOURS D’UN MOIS ET LE NOMBRE DE MERCREDIS SUR EXCEL
ALEATOIRE() : Une fonction de tirage aléatoire qui ne s’actualise pas sur Excel (non volatile)
Comment utiliser le tableau de paramètres (ParamArray) pour un nombre d’arguments variable en VBA Excel
Comment créer un graphique à bulles sur Excel ?
Comment compléter les cellules vides en 1 clic sur Excel
Comment calculer la TVA sur Excel

Contact - Plan du site - À propos - Contact

© Excel-Formation 2018 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.