Gerando senhas aleatórias

Publicado por Sandro Marcell 02/03/2008

[ Hits: 16.839 ]

Homepage: http://sanmarcell.wordpress.com

Download senha.tcl




Simples script Tcl que gera senhas aleatórias.

Ex.:
prompt > script.tcl 10
prompt > AshX$nj&tK

Talvez seja útil a alguém!

  



Esconder código-fonte

#!/usr/bin/tcl
#
# Gerando senhas aleatórias.
# Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Uso: <script.tcl> ou <script.tcl [valor]>
#
# Onde:
# [valor] determinará a quantidade de caracteres que comporão a senha.
#
# Obs.:
# - Somente números são válidos para a string [valor].
# - Caso a string [valor] não seja declarada, o padrão assumido é 8.
# - Se [valor] possuir espaços ou quaisquer outros caracteres que não
# sejam números, os mesmos serão removidos.

# Inicializando variável SENHA:
set SENHA {}    
# Removendo caracteres inválidos:
set VALOR [regsub -all {[^0-9]} $argv {}]

# Se a string [valor] não for especificada, o padrão é assumido!
if {![string length $VALOR]} { set VALOR 8 }

# Lista com caracteres utilizados para gerar a senha:
set CARS {
   a b c d e f g h i j k l m n o p q r s t u v w x y z
   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
   0 1 2 3 4 5 6 7 8 9
   ! ? ^ ~ @ # $ % & * - _ + =
}

# Loop de controle:
for {set I 0} {$I < $VALOR} {incr I} {
   # Gerando a senha:
   # [expr...] gera um valor aleatório com base no tamanho de $CARS;
   # [lindex...] pega o valor gerado e utiliza-o como índice para
   # capturar um caractere em $CARS;
   # [append...] recebe do lindex os caracteres e concatena-os
   # na variável $SENHA.
   append SENHA [lindex $CARS [expr {int([llength $CARS]*rand())}]]
}

# Resultado:
puts stdout $SENHA
# Fim

Scripts recomendados

Compactando arquivos e diretórios simultâneamente

Convertendo escalas termométricas

Criando uma simples lixeira para o usuário [Melhorado]

Simples visualizador de arquivos texto

Compactando / descompactando arquivos (Melhorado)


  

Comentários


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts