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?

19
demandé sur Donnied 2011-03-26 15:57:23

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
46
répondu samullen 2018-02-21 07:00:21

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")'
5
répondu kurumi 2011-03-26 14:57:24

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.

2
répondu Charlie Ross 2018-02-21 01:50:20