koyote Posted September 26, 2012 at 03:16 PM Report #476636 Posted September 26, 2012 at 03:16 PM Boa tarde, Tenho que fazer um programa em c que encriptar e desencriptar uma password, isto em ambiente linux. Já consegui encriptar com a função crypt, agora não consigo desencriptar, pelo que soube a mesma função crypt consegue desencriptar mas ainda não consegui descobrir como. Alguém sabe como desencriptar uma password em c, no ambiente linux? Obrigado pela atenção, koyote
HappyHippyHippo Posted September 26, 2012 at 03:28 PM Report #476638 Posted September 26, 2012 at 03:28 PM essa função serve para encriptar uma c-style string num processo de uma via. não existe passo inverso. http://www.gnu.org/software/libc/manual/html_node/crypt.html#crypt IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pmg Posted September 26, 2012 at 03:30 PM Report #476639 Posted September 26, 2012 at 03:30 PM (edited) Se estás a falar da função crypt() descrita pelo POSIX, repara que é uma função apenas de um sentido (encoding). Para o que queres (encrypting e decrypting) precisas de outra função. Aconselho-te uma leitura do artigo da Wikipedia sobre criptografia. O OpenSSL deve conter alguma coisa que possas aproveitar. Também encontrei um artigo com exemplos de uso Edited September 26, 2012 at 03:33 PM by pmg OpenSSL What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
pwseo Posted September 26, 2012 at 03:49 PM Report #476644 Posted September 26, 2012 at 03:49 PM (edited) Podes sempre encriptar de uma forma simples fazendo xor com um salt (funciona nos dois sentidos). Claro que a segurança que isto te dá não se compara às abordagens típicas de quem encripta coisas... De qualquer modo, normalmente não se desencriptam passwords. O que se faz é comparar a password encriptada com o resultado da encriptação da password introduzida pelo utilizador. Edited September 26, 2012 at 03:51 PM by pwseo
koyote Posted September 26, 2012 at 05:33 PM Author Report #476666 Posted September 26, 2012 at 05:33 PM Sim, eu sei que não se desencripta normalmente, mas isto é um exercicio que tenho que fazer para utilizar a função crypt. Mas disseram-me que esta função dava para encriptar e o inverso, mas pelo que vou vendo não dá. Agora não sei como em c consigo desencriptar.
HappyHippyHippo Posted September 26, 2012 at 05:44 PM Report #476668 Posted September 26, 2012 at 05:44 PM Sim, eu sei que não se desencripta normalmente, Ninguém disse que se desencripta de uma maneira manhosa. O que foi dito é, com este método, não se desencripta, ponto. mas isto é um exercicio que tenho que fazer para utilizar a função crypt. se é um exercício e é necessário teres as duas funcionalidades, já te foi dito que terás de usar outros métodos, assim como links para esses métodos. Mas disseram-me que esta função dava para encriptar e o inverso, mas pelo que vou vendo não dá. Agora não sei como em c consigo desencriptar. Disseram mas estavam errados, claramente. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
koyote Posted September 26, 2012 at 05:53 PM Author Report #476674 Posted September 26, 2012 at 05:53 PM (edited) Vou ler os links que me deram, só estava a explicar o problema melhor. Obrigado pela ajuda, vou ver o que consigo. edit Obrigado pela atenção. koyote Edited September 27, 2012 at 06:22 PM by koyote
pikax Posted September 27, 2012 at 08:27 AM Report #476734 Posted September 27, 2012 at 08:27 AM Mas disseram-me que esta função dava para encriptar e o inverso, mas pelo que vou vendo não dá. Existem formas para saber a possivel password verdadeira, atraves de brute-force(geras palavras e encriptas, quando as duas forem iguais entao e' possivel que e' a password certa.) ou rainbow tables. Ja' agora se a encriptacao so' e' feita de um sentido nao se deveria chamar de hash? Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
HappyHippyHippo Posted September 27, 2012 at 08:34 AM Report #476737 Posted September 27, 2012 at 08:34 AM Ja' agora se a encriptacao so' e' feita de um sentido nao se deveria chamar de hash? se fores ver a função, poderás ver que podes usar ou o DES (desaconselhado por ser demonstrado como inseguro) ou o MD5 (sendo este último chamado de hashing algorithm) acho que se chama assim somente por razões históricas IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Flinger Posted September 27, 2012 at 08:47 AM Report #476740 Posted September 27, 2012 at 08:47 AM Vê o link que o pmg te deu da openssl, mais especificamente a libcrypto. Tens lá várias cifras que podem ser usadas nos 2 sentidos. O sscanf deveria funcionar... de toda a forma tenta "escapar" o caracter \: Podes ainda dar uma vista de olhos ao strtok
koyote Posted September 27, 2012 at 06:25 PM Author Report #476808 Posted September 27, 2012 at 06:25 PM Existem formas para saber a possivel password verdadeira, atraves de brute-force(geras palavras e encriptas, quando as duas forem iguais entao e' possivel que e' a password certa.) ou rainbow tables. Ja' agora se a encriptacao so' e' feita de um sentido nao se deveria chamar de hash? Sim, pode chamar de hash, ela e feita num sentido, Pelo que percebi do problema tenho que resolver recorrendo a bruce-force, mas tenho pouca ideia como resolver este problema, conseguem dar uma digas, como eu a partir de uma função que encripta consigo desencriptar? Obrigado pela atenção, koyote Vê o link que o pmg te deu da openssl, mais especificamente a libcrypto. Tens lá várias cifras que podem ser usadas nos 2 sentidos. O sscanf deveria funcionar... de toda a forma tenta "escapar" o caracter \: Podes ainda dar uma vista de olhos ao strtok Já resolvi esse problema, obrigado pela ajuda.
koyote Posted September 28, 2012 at 09:38 PM Author Report #476980 Posted September 28, 2012 at 09:38 PM Desculpem estar a pressionar, mas ninguém sabe como consigo através do método "brute-force" desencriptar uma password? Não percebo bem o método que pode ser usado. Obrigado pela atenção, koyote
pikax Posted September 28, 2012 at 09:51 PM Report #476983 Posted September 28, 2012 at 09:51 PM encriptas todas as combinacoes possiveis e verificas se e' aceite Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
koyote Posted September 28, 2012 at 10:25 PM Author Report #476986 Posted September 28, 2012 at 10:25 PM encriptas todas as combinacoes possiveis e verificas se e' aceite Desculpa estar a chatear, mas pode dar um exemplo para ver se percebo de uma vez, por exemplo encriptar a palavra ler, eu uso a função crypt, mas quero e desencriptar. Encriptada dá algo do género 10k2FFqvI2 Como a partir disto chego a passa que quero, recorrenco ao recurso do "bruce-force"? Obrigado pela atenção, koyote
HappyHippyHippo Posted September 28, 2012 at 10:37 PM Report #476988 Posted September 28, 2012 at 10:37 PM para todas as conbinações de letras e palavras e caracteres encriptar a combinação verificar se o resultado encriptado é igual à encriptação da palavra-chave a encontrar se sim, tens então a palavra-chave original IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
koyote Posted September 29, 2012 at 06:45 PM Author Report #477062 Posted September 29, 2012 at 06:45 PM (edited) Já resolvi parte do problema. edit. Edited October 3, 2012 at 12:03 AM by koyote
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now