utiliser rot13 et la commande tr pour avoir une adresse email cryptée
j'ai lu beaucoup de tutoriels sur internet sur l'utilisation de la commande 'tr'. Cependant, je ne suis pas en mesure de comprendre comment crypter une adresse e-mail avec un script shell déplacer les caractères en utilisant rot13. Quelqu'un peut-il donner un lien ou un exemple?
3 réponses
Je ne sais pas exactement comment vous voulez utiliser ceci, mais voici un exemple de base pour commencer:
echo 'fooman@example.com' | tr 'A-Za-z' 'N-ZA-Mn-za-m'
Pour le rendre plus facile, vous pouvez alias tr
commande dans votre .bashrc
le fichier comme ceci:
alias rot13="tr 'A-Za-z' 'N-ZA-Mn-za-m'"
Maintenant, vous pouvez simplement appeler:
echo 'fooman@example.com' | rot13
Ruby (1.9+)
$ ruby -ne 'print $_.tr( "A-Za-z", "N-ZA-Mn-za-m") ' file
Python
$ echo "test" | python -c 'import sys; print sys.stdin.read().encode("rot13")'
une tâche parfaite pour tr
, en effet. Cela devrait faire ce que tu veux:
tr 'A-Za-z' 'N-ZA-Mn-za-m'
chaque caractère de la première série sera remplacé par le caractère correspondant de la deuxième série. Par exemple: A remplacé par N, B remplacé par O, etc.. Et puis la même chose pour les lettres minuscules. Tous les autres caractères seront pas modifiée.
notez l'absence de [
et ]
là où vous pourriez normalement les attendre. C'est parce que tr
traite les crochets littéralement, pas comme des expressions de portée. Ainsi, par exemple, tr -d '[A-Z]'
supprimer les majuscules et crochets. Si vous voulez garder vos supports, utilisez tr -d 'A-Z'
:
$ echo "foo BAR [baz]" | tr -d '[A-Z]'
foo baz
$ echo "foo BAR [baz]" | tr -d 'A-Z'
foo [baz]
idem pour les classes de caractères. E. g. tr -d '[[:lower:]]'
est probablement une erreur, et doit être tr -d '[:lower:]'
.
cependant, dans les situations de chance comme celle-ci, vous pouvez vous en tirer avec l'inclusion des crochets de toute façon! Par exemple, tr "[a-z]" "[A-Z]"
accidentellement œuvres parce que les crochets dans le premier ensemble sont remplacés par des crochets identiques du deuxième ensemble, mais vraiment c'est une mauvaise habitude d'entrer. Utilisez tr "a-z" "A-Z"
à la place.