Gerando cadeias aleatórias
Publicado por Sandro Marcell 29/09/2008
[ Hits: 6.063 ]
Homepage: http://sanmarcell.wordpress.com
Simples script (em zsh) que gera cadeias utilizando letras, números, sinais, etc... de forma aleatória. Exemplos:
% ./script.sh 5
!sl[g
% ./script.sh 15
~^VnP_FVWeig51g
% ./script.sh 30
k8_aS@*R:EI2k2B_$g5ymMDSXaiQ*q
#!/bin/zsh -f
#
# Gerando cadeias aleatorias.
# Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Uso: <script.sh> ou <script.sh [valor]>
#
# Onde:
# [valor] determinara a quantidade de caracteres que comporao a cadeia.
#
# Ex.:
# % ./script.sh 30
# xZ~c9r3VN@^c=ghWCm*NIt5t7AVsgO
#
# Obs.:
# - Somente numeros sao validos para a string [valor];
# - Caso [valor] nao seja especificado, o padrao assumido e 13;
# - Se [valor] possuir espacos ou quaisquer outros caracteres que nao
# sejam numeros, os mesmos serao removidos.
# Carregando modulo de funcoes matematicas:
zmodload -i zsh/mathfunc
# Removendo caracteres invalidos:
string="$argv"
valor=$(print ${string//[^0-9]/})
# Caracteres utilizados para gerar a cadeia:
cars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!?:^~@#$%&*_+=[]/"
# Loop de controle:
for ((i=0 ; i < ${valor:-13} ; i++))
do
# Gerando cadeia:
rand=$((1 + ((int(${(c)#cars} * rand48(seed))) / (RAND_MAX + 1 ))))
print -n "$cars[$rand]"
unset rand
done
print ""
# Fim
Script para conexão a internet á radio
Samba - Forçar usuário a alterar senha no próximo logon
SCRIPT PARA AUTOMAÇÃO NA CRIAÇÃO DE USUÁRIOS NO AMBIENTE LINUX.
Automatiza a instalação do necessário no Debian 8
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)
Quando vocês pararam de testar distros? (10)









