Chiffrement réversible AES
#1
Pour un script que je développe, j'ai besoin d'un chiffrement (crypt) réversible.

Plusieurs packages sont disponibles, comme blowfish (qui est déprécié si je me souviens bien), AES ou DES (je ne suis pas exhaustif), j'ai décidé d'utiliser AES mais ce que je fais est adaptable aux autres formats.

AES nécessite une clé de 16 octets, j'ai donc dans mon script:
tcl
# (de)crypt key, only the 16 first chars are used
variable skey "This KeY is pr1v4t3"



Je ne fais qu'informer, je traite ensuite la clé pour qu'elle soit telle que je la désire avec la procédure suivante:
tcl
proc aeskey {key} {
   if {[string length $skey]>16} {
      # Clé trop longue, on ne prend que les 16 premiers caractères
      set key [string range $key 0 15]
   } elseif {[string length $key]>16} {
      # Clé trop courte, on complète avec des 0 à la fin
      set key [format "%-016s" $key]
   }
   return $key
}



Et ensuite mes procédures de (de)cryptage:
tcl
proc encrypt {key text} {
   set key [aeskey $key]
   return [::aes::aes -dir encrypt -key $key $text]
}
proc decrypt {key text} {
   set key [aeskey $key]
   return [::aes::aes -dir decrypt -key $key $text]
}



Bien entendu cet exemple n'est pas du tout optimisé, il est là juste pour faire la démonstration
Présent sur le Tchat francophone
Répondre
#2
Précision : le package aes doit être chargé au moyen de la commande suivante avant de pouvoir être utilisé :
tcl
package require aes


Ce package fait partie de Tcllib ( http://www.tcl-lang.org/software/tcllib/ )
Toute l'actualité de mes scripts ici (dernière mise à jour le 03/04/2025)
Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
Répondre
#3
C'est bien pourquoi je précise que des packages sont disponibles Smile
Présent sur le Tchat francophone
Répondre
#4
C'est bien pourquoi je précise lequel et où :p
Toute l'actualité de mes scripts ici (dernière mise à jour le 03/04/2025)
Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit - Discutez en toute liberté - Transitionnez vers Linux - Discussions dans le Lauragais - Communauté LGBT respectueuse - soutien aux victimes de cybermalveillance - pour les filles par les filles