crypt é um utilitário Unix. Do link:
As distribuições Linux geralmente não incluem uma versão compatível com Unix do comando crypt. Isto é em grande parte devido a uma combinação de três fatores principais:
- o crypt é relativamente obscuro e raramente usado para anexos de e-mail, nem como um formato de arquivo O
- crypt é considerado muito criptograficamente fraco para suportar ataques de força bruta de sistemas de computação modernos (os sistemas Linux geralmente vêm com o GNU Privacy Guard, que é considerado razoavelmente seguro pelos padrões modernos)
- Durante os primeiros anos de desenvolvimento e adoção do Linux, havia alguma preocupação de que, mesmo sendo tão fraco quanto o algoritmo usado pela cripta, ele ainda poderia entrar em conflito com os controles de exportação da ITAR [carece de fontes?]; assim, os desenvolvedores de distribuição mainstream nos Estados Unidos geralmente excluíam [e] deixavam seus clientes buscarem GnuPG / GPG ou outro software criptográfico strong de sites internacionais, às vezes fornecendo pacotes ou scripts para automatizar esse processo).
O código-fonte da cripta pode ser encontrado nos Sites de arquivo do Unix .
mcrypt é a versão sucessora / Linux da cripta e estamos usando isso (pelo menos) desde < href="http://packages.ubuntu.com/lucid/mcrypt"> Lucid . Substituição da antiga crypt unix (1) que está nos detalhes do pacote.
O código-fonte do mcrypt pode ser encontrado aqui: mcrypt_2.6.8-1.3_i386.deb em máquinas Intel x86
Mas isso não está instalado em um Ubuntu padrão.
Mas o que você está procurando provavelmente está registrado em ...
/etc/login.defs
Este é o lugar onde os sistemas Linux armazenam o que usar. Por padrão, para o Ubuntu, este é o SHA512. Portanto, isso não é uma criptografia, mas uma senha com hash a partir de $ 6 $.
Exemplo usando sha1sum :
$ echo hello|sha1sum
f572d396fae9206628714fb2ce00f72e94f2258f -
-
Em relação ao comentário, consulte: link Esse é o chamado para criar a senha a partir do texto sem formatação.
Aqui está uma fonte: link
Código parcial:
switch(encryption)
{
case PE_BASE64:
return _hash_base64(password);
case PE_BLOWFISH:
return _hash_blowfish(password, salt, iterations);
case PE_DES:
return _hash_des(password, salt);
case PE_MD5:
return _hash_md5(password);
case PE_NONE:
return _hash_none();
case PE_SHA1:
return _hash_sha1(password, salt, iterations);
case PE_SHA256:
return _hash_sha256(password, salt);
case PE_SHA512:
return _hash_sha512(password, salt);
case PE_SHMD5:
return _hash_shmd5(password, salt);
default:
errno = ENOSYS;
_error("encryption", 1);
return NULL;
}
todas as funções usadas estão abaixo desse código.