Question
[Résolu] Chiffrer :Echange lettres dans une string
- Roninjin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 9 ans 6 mois #22253
par Roninjin
Réponse de Roninjin sur le sujet Re:Echange de lettre dans une string
Super ça marche
[code:1]$PasswordClear = 'Test'
$Map= new-object System.Collections.Hashtable
$Map.'a'='K'
$Map.'b'='2'
$map.'c'='y'
$Map.'d'='p'
$map.'e'='l'
$map.'f'='E'
$map.'g'='C'
$map.'h'='r'
$map.'i'='7'
$map.'j'='t'
$map.'k'='U'
$map.'l'='a'
$map.'m'='9'
$map.'n'='0'
$map.'o'='e'
$map.'p'='W'
$map.'q'='i'
$map.'r'='L'
$map.'s'='3'
$map.'t'='f'
$map.'u'='o'
$map.'v'='N'
$map.'w'='h'
$map.'x'='5'
$map.'y'='c'
$map.'z'='R'
$map.'A'='w'
$map.'B'='S'
$map.'C'='m'
$map.'D'='I'
$map.'E'='v'
$map.'F'='Y'
$map.'G'='4'
$map.'H'='n'
$map.'I'='Q'
$map.'J'='d'
$map.'K'='F'
$map.'L'='A'
$map.'M'='b'
$map.'N'='P'
$map.'O'='D'
$map.'P'='X'
$map.'Q'='z'
$map.'R'='M'
$map.'S'='Z'
$map.'T'='k'
$map.'U'='j'
$map.'V'='g'
$map.'W'='H'
$map.'X'='$'
$map.'Y'='O'
$map.'Z'='q'
$map.'0'='B'
$map.'1'='G'
$map.'2'='T'
$map.'3'='x'
$map.'4'='s'
$map.'5'='1'
$map.'6'='u'
$map.'7'='8'
$map.'8'='V'
$map.'9'='6'
$map
$PasswordEncrypt = ''
foreach ($C in [char[]]$PasswordClear){
$PasswordEncrypt +=$map.\"$C\"
}
$PasswordEncrypt[/code:1]
[code:1]$PasswordClear = 'Test'
$Map= new-object System.Collections.Hashtable
$Map.'a'='K'
$Map.'b'='2'
$map.'c'='y'
$Map.'d'='p'
$map.'e'='l'
$map.'f'='E'
$map.'g'='C'
$map.'h'='r'
$map.'i'='7'
$map.'j'='t'
$map.'k'='U'
$map.'l'='a'
$map.'m'='9'
$map.'n'='0'
$map.'o'='e'
$map.'p'='W'
$map.'q'='i'
$map.'r'='L'
$map.'s'='3'
$map.'t'='f'
$map.'u'='o'
$map.'v'='N'
$map.'w'='h'
$map.'x'='5'
$map.'y'='c'
$map.'z'='R'
$map.'A'='w'
$map.'B'='S'
$map.'C'='m'
$map.'D'='I'
$map.'E'='v'
$map.'F'='Y'
$map.'G'='4'
$map.'H'='n'
$map.'I'='Q'
$map.'J'='d'
$map.'K'='F'
$map.'L'='A'
$map.'M'='b'
$map.'N'='P'
$map.'O'='D'
$map.'P'='X'
$map.'Q'='z'
$map.'R'='M'
$map.'S'='Z'
$map.'T'='k'
$map.'U'='j'
$map.'V'='g'
$map.'W'='H'
$map.'X'='$'
$map.'Y'='O'
$map.'Z'='q'
$map.'0'='B'
$map.'1'='G'
$map.'2'='T'
$map.'3'='x'
$map.'4'='s'
$map.'5'='1'
$map.'6'='u'
$map.'7'='8'
$map.'8'='V'
$map.'9'='6'
$map
$PasswordEncrypt = ''
foreach ($C in [char[]]$PasswordClear){
$PasswordEncrypt +=$map.\"$C\"
}
$PasswordEncrypt[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 6 mois #22254
par Philippe
Réponse de Philippe sur le sujet Re:Echange de lettre dans une string
après au niveau sécurité il y a des méthodes plus \"secu\" 
par exemple la cmdlet : convertfrom-securestring
un exemple d'utilisation en Français non crypté !!
par exemple la cmdlet : convertfrom-securestring
un exemple d'utilisation en Français non crypté !!
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 9 ans 6 mois #22255
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Echange de lettre dans une string
6ratgus écrit:
-Replace renvoie une chaine, le principe de l' enchaînement de méthodes , il y a donc le risque de collision suivant :
[code:1]
-creplace 'M','P'`
-creplace 'P','M'`
#Ou
-creplace 'P','M'`
-creplace 'M','P'`
[/code:1]
Ici on traite à nouveau ce qui a été remplacé, -Replace étant basé sur des regex celles-ci consomment toutes les lettres.
Il reste la possibilité de combiner une regex et un scriptblock contenant un switch, et qui ne nécessite qu'un seul appel :
[code:1]
#crée un délégué du type précisé
$delegate= [System.Text.RegularExpressions.MatchEvaluator] {
param($lettre)
Switch -casesensitive ($Lettre) {
'M' {'P'}
'l' {'a'}
'k' {'r'}
'a' {'i'}
'x' {'s'}
#default {$lettre}
}
}
$reg = [regex] \".\"
$PasswordClear = 'Mlkax'
$reg.Replace($PasswordClear, $delegate)
[/code:1]
Ici la regex consomme toutes les lettres et exécute le scriptblock pour chaque caractère.
La solution basée sur la variable $Map fait +- la même chose, en plus simple
.
Oui, mais cela ne change pas le fond du pb.tu remarque je n'est que changé l'ordre des remplace mais aussi forcé la sensibilité à la case du \"replace\"
-Replace renvoie une chaine, le principe de l' enchaînement de méthodes , il y a donc le risque de collision suivant :
[code:1]
-creplace 'M','P'`
-creplace 'P','M'`
#Ou
-creplace 'P','M'`
-creplace 'M','P'`
[/code:1]
Ici on traite à nouveau ce qui a été remplacé, -Replace étant basé sur des regex celles-ci consomment toutes les lettres.
Il reste la possibilité de combiner une regex et un scriptblock contenant un switch, et qui ne nécessite qu'un seul appel :
[code:1]
#crée un délégué du type précisé
$delegate= [System.Text.RegularExpressions.MatchEvaluator] {
param($lettre)
Switch -casesensitive ($Lettre) {
'M' {'P'}
'l' {'a'}
'k' {'r'}
'a' {'i'}
'x' {'s'}
#default {$lettre}
}
}
$reg = [regex] \".\"
$PasswordClear = 'Mlkax'
$reg.Replace($PasswordClear, $delegate)
[/code:1]
Ici la regex consomme toutes les lettres et exécute le scriptblock pour chaque caractère.
La solution basée sur la variable $Map fait +- la même chose, en plus simple
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 6 mois #22256
par Philippe
Réponse de Philippe sur le sujet Re:Echange de lettre dans une string
Laurent Dardenne écrit:
mais ça depend surtout de la complexité du cryptage (du nombre de caractères changé !!)
c'est pour ça qu'il existe d'autres méthodes spécialisé dans ce travail !!
<br><br>Message édité par: 6ratgus, à: 2/09/16 11:44
exactOui, mais cela ne change pas le fond du pb.
mais ça depend surtout de la complexité du cryptage (du nombre de caractères changé !!)
c'est pour ça qu'il existe d'autres méthodes spécialisé dans ce travail !!
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.098 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Chiffrer :Echange lettres dans une string