Lettrage et chiffrage selon la formule Aimé Paris

Programmation d'applications complexes
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Lettrage et chiffrage selon la formule Aimé Paris

Message par Micoute »

Bonjour à tous,
n'ayant pas de projet pour le moment et pour m'occuper un moment, j'ai créé ce programme de chiffrage et lettrage.
La formule d'Aimé Paris est une méthode mnémotecnique pour se souvenir plus facilement des choses, car les lettres et les chiffres sont intiment liés, donc on peut mettre une chose en chiffres ou l'inverse, le voyelles ne servant à rien dans le codage, on peut donc en mettre autant qu'on veut pour que le mot à retenir soit plus intelligible, par exemple 321, peut devenir nomade, etc...

Code : Tout sélectionner

;Lettrage et et chiffrage selon la formule Aimé Paris
Procedure$ Lettrage(Chaine$)
  Protected i, j, Resultat$ = ""
  
  For i = 1 To Len(Chaine$)
    Select Val(Mid(Chaine$, i, 1))
      Case 0
        j = Random(1)
        If j = 0
          Resultat$ + "Z"
        Else
          Resultat$ + "S"
        EndIf  
      Case 1
        j = Random(1)
        If j = 0
          Resultat$ + "T"
        Else
          Resultat$ + "D"
        EndIf  
      Case 2
        Resultat$ + "N"
      Case 3
        Resultat$ + "M"
      Case 4
        Resultat$ + "R"
      Case 5
        Resultat$ + "L"
      Case 6
        j = Random(1)
        If j = 0
          Resultat$ + "G"
        Else
          Resultat$ + "J"
        EndIf  
      Case 7
        j = Random(1)
        If j = 0
          Resultat$ + "C"
        Else
          Resultat$ + "K"
        EndIf  
      Case 8
        j = Random(1)
        If j = 0
          Resultat$ + "F"
        Else
          Resultat$ + "V"
        EndIf  
      Case 9
        j = Random(1)
        If j = 0
          Resultat$ + "B"
        Else
          Resultat$ + "P"
        EndIf  
    EndSelect
  Next i
  ProcedureReturn Resultat$
EndProcedure

Procedure$ Chiffrage(Chaine$)
  Protected i, Resultat$ = ""
  
  Chaine$ = UCase(Chaine$)
  
  For i = 1 To Len(Chaine$)
    Select Mid(Chaine$, i, 1)
      Case "S", "Z"
        Resultat$ + "0"
      Case "D", "T"
        Resultat$ + "1"
      Case "N"
        Resultat$ + "2"
      Case "M"
        Resultat$ + "3"
      Case "R"
        Resultat$ + "4"
      Case "L"
        Resultat$ + "5"
      Case "G", "J"
        Resultat$ + "6"  
      Case "C", "K"
        Resultat$ + "7"
      Case "F", "V"
        Resultat$ + "8"
      Case "B", "P"
        Resultat$ + "9"
    EndSelect
  Next i
  ProcedureReturn Resultat$
EndProcedure


Debug Lettrage("0123456789")
Debug Chiffrage("STNMRLJKVP")
Debug Chiffrage("ZDNMRLGCFB")
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !