Shell script que criptografa arquivos
Publicado por Sandro Marcell 11/07/2008
[ Hits: 8.839 ]
Homepage: http://sanmarcell.wordpress.com
Um simples shell script que cria uma pseudo-criptografação em arquivos. É
bem simples e mostra alguns conceitos do poderoso Sed =)
#!/bin/zsh # # Cripta.sh - Criptografador tosco de arquivos # # Sandro Marcell P. Barbosa (Boa Vista - Roraima) # E-mail: sandro_marcell@yahoo.com.br # # Ao descriptografar, as regras gramaticais irão pro saco :( # Chaves usadas para 'criptografação' CHAVE_A="zMAnyLBoxKCpwJDqvIEruHFstG" CHAVE_N="9081726354" # Realçando a saída do comando 'print': Print () print '\e[1m'"\n$*\n" ; tput sgr0 # Testando os parâmetros passados: while getopts 'ac:d:' PRM 2> /dev/null ; do case $PRM { a) Print "Uso: $(basename $0) -a [-c arquivo] [-d arquivo] Onde: -a = Mostra está mensagem -c = Criptografa arquivo -d = Descriptografa arquivo" ;; # ---------------------------------------------------------------- # c) ARQ=$OPTARG # O arquivo existe? [[ ! -a $ARQ ]] && Print "-> Arquivo não encontrado!" && bye # E se for um diretório? [[ -d $ARQ ]] && Print "-> Diretórios não são válidos!" && bye # O usuário pode acessá-lo? [[ ! -w $ARQ ]] && Print "-> Sem permissão para acessar arquivo!" && bye # 'Criptografando' o arquivo: sed "{ y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/ y/ÃãÁáÀàÂâÉéÊêÍíÓóÕõÔôÚúÜüÇç/AAAAAAAAEEEEIIOOOOOOUUUUCC/ y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/$CHAVE_A/ s/^$/\[~]/g s/[* ]/\*|-/g 1!G;h;\$!d /[0-9]/b Números b Final :Números y/1234567890/$CHAVE_N/ :Final }" < $ARQ > $ARQ.cpt \ && Print "-> Arquivo criptografado." \ || Print "-> Erro ao criptografar arquivo!" ;; # ---------------------------------------------------------------- # d) ARQ_CPT=$OPTARG # O arquivo existe? [[ ! -a $ARQ_CPT ]] && Print "-> Arquivo não encontrado!" && bye # O usuário pode acessá-lo? [[ ! -w $ARQ_CPT ]] && Print "-> Sem permissão para acessar arquivo!" && bye # O arquivo está criptografado? (checando a extensão .cpt): [ ${ARQ_CPT##*.} != cpt ] && Print "-> Arquivo não criptografado!" && bye # 'Descriptografando' o arquivo: sed "{ y/$CHAVE_A/ABCDEFGHIJKLMNOPQRSTUVWXYZ/ y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ s/\[~]/ /g s/\*|-/ /g 1!G;h;\$!d /[0-9]/b Números b Final :Números y/$CHAVE_N/1234567890/ :Final }" < $ARQ_CPT > $ARQ_CPT.dpt \ && Print "-> Arquivo descriptografado." \ || Print "-> Erro ao descriptografar arquivo!" ;; *) Print "Ops!!! Faça \'$(basename $0) -a\' para obter ajuda." ;; } done
Acertando número para numeração
Pingmon1.0 - Ping Timeout Monitor
Instalação do LibreOffice 64 bits no Ubuntu
Shell Script para compilar o suporte À Logitech Quickcam Express no Slackware / Vector / Slax Linux
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Ativando o Modo Noturno via Linha de Comando no GNOME/Wayland
Preparando pendrive com GNU/Linux [Corretamente!]
Instalando Google Chrome no Fedora 40
Habilitando a importação de senhas no Firefox
Como corrigir o erro do VirtualBox travar a máquina virtual em tela cheia
NOTEBUXO POSITIVO VAIO VJFE43F11X Something has gone seriously wrong... (0)
Como faço pra um script ser executado apenas abrindo um terminal e dan... (8)
O Programa Configurações Sumiu no Ubuntu 22.04 [RESOLVIDO] (5)