Si necesitamos crear un password encriptado para un usuario, podemos utilizar la función crypt en C, PHP o Perl, por ejemplo… Para mayor rapidez, y teniendo en cuenta que la mayor parte de instalaciones llevan Perl instalado, podemos usar el siguiente script.

#!/usr/bin/perl

my $plaintext = “pass123“;
my $salt = join ”, (0..9,’a’..’z’,’A’..’Z’,’.’,’/’)[rand 64, rand 64];
my $encoding = crypt($plaintext, $salt);
print $encoding;

Cabe señalar que en realidad una contraseña encriptada no requiere el usuario. Crypt sólo requiere la cadena a encriptar y lo que se llama una semilla (conocida por el nombre en inglés ‘seed’ o ‘salt’). La semilla puede ser fija o bien aleatoria, aunque es altamente recomendable que sea aleatoria, pues la contraseña encriptada contendrá como primeros carácteres el ‘seed’ que proporcionemos.

Así que si montaramos un script donde la semilla siempre es la misma, las contraseñas de todos nuestros usuarios empezarían por esta cadena, con lo que un usuario “malvado” tendría el camino algo más fácil para conseguir obtenerla.