Shell script que criptografa arquivos
Publicado por Sandro Marcell 11/07/2008
[ Hits: 9.277 ]
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
Numlock automático no Slackware
Interface gráfica para nível de tinta (escputil) em shell script
Mantendo hora do servidor atualizada com NTP
Script para gerar ISO do OpenBSD
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
É normal não gostar de KDE? (6)
Impressora epson l6270 não funciona em Linux mint (0)
esqueci a senha do boot do notebook dell vostro 3300 (3)