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.