saramgsilva Posted June 14, 2006 at 04:48 PM Report #32950 Posted June 14, 2006 at 04:48 PM Boas, Num sistema de registo de dados, que envolve por exemplo senha, usa-se normalmente a encriptação de dados. Uma função que o php oferece é a função md5, que converte uma string ( <32 char ) numa string de 32 caracteres. Vou apresentar um pequeno script, que ao dar uma stringdevolve-me a sua encriptação, usando a função md5 encriptar.php <form action="encriptar.php" method="POST" > <input type="text" value="" name="palavra" size="20" maxlength="32"> <input type="submit" value=" Envia " name="validar" > </form> <?php $codigo=md5($_POST['palavra']); echo($codigo); ?> Podem apresentar outras funções de encriptação que existe no php 😄 www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5
inginheiiro Posted June 20, 2006 at 10:59 AM Report #33888 Posted June 20, 2006 at 10:59 AM desculpa "contrariar-te", mas o md5 não é uma função de cifra, embora pertença ao universo da criiptografia. o md5 é um algoritmo de assinatura descrito no RFC http://www.ietf.org/rfc/rfc2831.txt Ou seja, é uma função de um só sentido, sem inversa. se guardares uma assinatura MD5 de uma password, nunca poderás recuperar a password original 😉 Podes sim, cada vez que alguém introduz uma password, assinares (MD5) o input e verificar se o resultado obtido é igual à assinatura guardada. Se for, então estás na presença de alguém que sabe a password . pois Existe apenas um (Password,Assinatura) : MD5(Password)=Assinatura a função MD5 do php, se não me engano dá como resultado dois formatos: 32 char em hexadecimal. 16 raw binary. normalmente usa-se o 32 char hex para armazenamento. /ing I used to have a life ... but i bought a programmable machine in 1982 ...
NuGuN Posted June 20, 2006 at 08:08 PM Report #33984 Posted June 20, 2006 at 08:08 PM se guardares uma assinatura MD5 de uma password, nunca poderás recuperar a password original Smiley inginheiiro tira-me duas duvida.... no MD5 não sei se se já é possivel mas se não estou em erro li um texto algures na internet que falava soubre o MD4 e já existiam algoritmos capase de chegar a password em poucos minutos. Com MD5 istu tb ja é possivel? Podes sim, cada vez que alguém introduz uma password, assinares (MD5) o input e verificar se o resultado obtido é igual à assinatura guardada.Se for, então estás na presença de alguém que sabe a password . pois Existe apenas um (Password,Assinatura) : MD5(Password)=Assinatura A outra duvida é como pode istu ser possivel se é possivel fazer mais combinações com as letras do abcedario com os numeros e com alguns caracteres como o "_" e o "." por exemplo, do que com uma string de 32 caracteres em hexadecimal? Não tenho a certesa mas penso que é possivel que 2 strings diferentes tenhao a mesma hash(penso que é asism que se chama 😛 ) Mais umas curiosidades : http://en.wikipedia.org/wiki/MD5 cumps
inginheiiro Posted June 21, 2006 at 09:07 AM Report #34047 Posted June 21, 2006 at 09:07 AM inginheiiro tira-me duas duvida.... no MD5 não sei se se já é possivel mas se não estou em erro li um texto algures na internet que falava soubre o MD4 e já existiam algoritmos capase de chegar a password em poucos minutos. Com MD5 istu tb ja é possivel? É verdade que foram descobertas falhas nos algoritmos de assinatura MD5 (128bits) e SHA-1(160bits). O Apache por exemplo usa extensivamente o MD5, enquanto que o PGP e o SSL usam SHA-1. Através da exploração da falha detectada, em algumas horas consegue-se gerar colisões hash para o MD5. ISTO é apenas o ínicio de um POSSIVEL ataque, ou seja: Deste ponto até se descobrir a função inversa , ainda se leva muito tempo ... A solução passa por passar a usar outros algoritmos de assinatura SHA-1 p.ex. (mais robusto), etc etc. A outra duvida é como pode istu ser possivel se é possivel fazer mais combinações com as letras do abcedario com os numeros e com alguns caracteres como o "_" e o "." por exemplo, do que com uma string de 32 caracteres em hexadecimal? Não tenho a certesa mas penso que é possivel que 2 strings diferentes tenhao a mesma hash(penso que é asism que se chama ) O resultado de qualquer assinatura (HASH) é em binário. O MD5 gera um resultado de 128 bits. Posteriormente podes converter esse resultado noutro formato. é o que acontece com a função do PHP que gera um Hexadecimal de 32 caracteres. Agora... 2 strings com os mesmos caracteres em posições diferentes, nunca geram a mesma assinatura 😛 string 1= AAABBB_ string 2 =AAABB_B MD5(string 1 ) != MD5(string 2). O Algoritmo de assinatura digital, prevê que um valor de entrada, tem uma só HASH de saída. /ing I used to have a life ... but i bought a programmable machine in 1982 ...
karva Posted July 3, 2006 at 07:51 PM Report #36019 Posted July 3, 2006 at 07:51 PM pra sakar md5 e md4, usam-se rainbow tables, onde tao os strings todos, e ele vai a procura Proud LEIC-A@IST student!
kingless Posted July 4, 2006 at 11:28 AM Report #36104 Posted July 4, 2006 at 11:28 AM Se quiserem uma função de php que encripta e desencripta podem utilizar base64_encode(); e base64_decode();
Gurzi Posted July 5, 2006 at 01:34 PM Report #36344 Posted July 5, 2006 at 01:34 PM Bem isto é completamente fantástico.. Adoro encriptação 🙂 E eu não sei nada de nada, estou a ficar apaixonado com isto, é simplesmente brutal.. Quero que me tirem uma dúvida.. quando fazemos o "download " de um ficheiro normalmente diz HASH MD5 e tem esses 32 caracteres provenientes dos 128 bits que a "verdadeira" md5 origina.. mas esse código corresponde ao que ? ao nome com que está guardado o ficheiro ? Outra coisa... nos dias de hoje qual a utilização mais rentável ? md5 ? SHA-1 ou base64_encode() ? Então se usar md5 nunca vou poder saber a password que o utilizador tinha, eu não, mas se ele quiser receber de novo a sua password é impossivél .. Impossivél porquê ? Sempre ouvi dizer que o que se monta tambem se desmonta, logo o que existe no md5 que seja impossível de descodificar ? Um abraço 🙂Gurzi 😉
M6 Posted July 5, 2006 at 01:45 PM Report #36346 Posted July 5, 2006 at 01:45 PM Bem isto é completamente fantástico.. Adoro encriptação 🙂 E eu não sei nada de nada, estou a ficar apaixonado com isto, é simplesmente brutal.. Quero que me tirem uma dúvida.. quando fazemos o "download " de um ficheiro normalmente diz HASH MD5 e tem esses 32 caracteres provenientes dos 128 bits que a "verdadeira" md5 origina.. mas esse código corresponde ao que ? ao nome com que está guardado o ficheiro ? Isso refere-se ao MD5 do ficheiro. Se fizeres md5sum nome_ficheiro em Linux isso dá-te um valor MD5. Esse valor serve para ver se, por exemplo, o ficheiro que tens corresponde ao original. Outra coisa... nos dias de hoje qual a utilização mais rentável ? md5 ? SHA-1 ou base64_encode() ? Isso depende da tua finalidade. Por exemplo, uso bastante o MD5 quando necessito de ids únicos. A probabilidade de clash é reduzida, pelo que nessas situações o MD5 é uma hipótese. Já se necessitares de descodificar algo, deves usar qualquer coisa como o base64. Então se usar md5 nunca vou poder saber a password que o utilizador tinha, eu não, mas se ele quiser receber de novo a sua password é impossivél .. Impossivél porquê ? Sempre ouvi dizer que o que se monta tambem se desmonta, logo o que existe no md5 que seja impossível de descodificar ? Um abraço 🙂Gurzi 😉 Exactamente. No caso particular do MD5, é possível encontrares um conjunto de valores que originam a mesma chave MD5, mas nunca vais saber qual desses valores realmente é o "verdadeiro/original". Há também codificações que é possível reverter, mas tal demora tanto tempo usando o poder computacional actual que se torna inviável. Pode saber mais aqui: http://en.wikipedia.org/wiki/Md5 e aqui http://en.wikipedia.org/wiki/Cryptography 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
Gurzi Posted July 5, 2006 at 02:23 PM Report #36354 Posted July 5, 2006 at 02:23 PM Bem se calhar estou a mandar uma grande bacorada, mas perguntar é um dos passos da saboderia 😉 o hash de um ficheiro corresponde ao que ? eu se fizer $password =md5($pass) ele vai fazer um md5 á password ou seja aos caracteres que ele introduziu agora um ficheiro... não me está a entrar na cabeça, nem consigo criar um raciocínio.. outra coisa, estou aprender cookies, fui aqui aos meus cookies e aparece isto MC1 GUID=5c83bb3763ddfa4fa9a9d3bc6f687310&HASH=37bb&LV=20054&V=3 microsoft.com/ 1024 2330023936 29812409 3007702656 29701839 * s_nr 1150897711992 microsoft.com/ 1088 1510056320 29797580 1647607680 29791545 * WT_FPC id=195.23.23.166-195864976.29791544:lv=1150865340368:ss=1150894125865 microsoft.com/ 1088 3133277696 30525724 1931367680 29791545 * A I&I=AxUFAAAAAAA9BwAA1z7ll5FPUOUWVtmhHUwm8g!! microsoft.com/ 1024 2939469568 31995917 3719134976 29791544 * MUID BD8925CFB71A46BF8FD2A4E3FCCD6558 microsoft.com/ 1024 204832768 30859217 1801247680 29791545 * pode-se ver a palavra HASH , ou seja , aquilo são os tais 32 caracteres correspondentes á passagem de 128 bits para hexadecimal ?
M6 Posted July 5, 2006 at 02:27 PM Report #36357 Posted July 5, 2006 at 02:27 PM No caso do ficheiro não sei ao certo como funciona, mas sendo o Linux OSS, podes sempre ir ver o código fonte. No entanto, se virmos um ficheiro como uma "simples string", parece-me que md5sum se limita a fazer hash dessa mesma string. Quanto ao Hash, a resposta é não. Podes ter qualquer função de hash, não tem de ser um MD5. Por exemplo, podes definir uma função de hash que seja simplesmente o tamanho de uma string. As funções de hash são escolhidas de forma a existir uma boa distribuição dos elementos por uma lista, de forma a que, haja pouco clash. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
Gurzi Posted July 5, 2006 at 02:35 PM Report #36359 Posted July 5, 2006 at 02:35 PM :beer:obrigado 😉 :lamo:OFFTOPIC a utilização de cookies é normal ? estou agora a aprendê-los e não sei se vale a pena ou não. por exemplo : setcookie("username",$password,time()+1200); isto vale a pena ou ninguem usa cookies?
M6 Posted July 5, 2006 at 02:43 PM Report #36364 Posted July 5, 2006 at 02:43 PM :beer:obrigado 😉 :lamo:OFFTOPIC a utilização de cookies é normal ? estou agora a aprendê-los e não sei se vale a pena ou não. por exemplo : setcookie("username",$password,time()+1200); isto vale a pena ou ninguem usa cookies? Enquanto developer, uso cookies para guardar alguma informação "semi-persistente", entre sessões de utilização. Tenho é sempre alguma "renitência" a deixar informação sensível como username/password em cookies, isso não acho muito boa ideia. No entanto, como user, tenho o browser configurado para só permitir acesso às cookies a partir dos sites que as criaram. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
Gurzi Posted July 5, 2006 at 02:56 PM Report #36367 Posted July 5, 2006 at 02:56 PM Podes me dar alguma ideia de cookies que guardes sem ser username e password ? Nos cookies quando tens algo m6.portugalaprogramar.pt/index.php e nesta páginas escolheste a cor do fundo branco Se ao passares a m6.portugalaprogramar.pt/codigos.php tens que usar o campo "domain" com portugalaprogramar.pt ?? Em relação ás passwords são acessíveis ? tb podes colocar uma hash na password do cookie. Abraço
M6 Posted July 5, 2006 at 03:05 PM Report #36368 Posted July 5, 2006 at 03:05 PM Podes me dar alguma ideia de cookies que guardes sem ser username e password ? Nos cookies quando tens algo m6.portugalaprogramar.pt/index.php e nesta páginas escolheste a cor do fundo branco Se ao passares a m6.portugalaprogramar.pt/codigos.php tens que usar o campo "domain" com portugalaprogramar.pt ?? A Amazoon guarda a escolha dos livros que fazes, também faço o mesmo num carrinho de compras que implementei. Em relação ás passwords são acessíveis ? tb podes colocar uma hash na password do cookie. Abraço Se tens lá uma coisa do tipo: user=xpto password=yptz, alguém que leia essa cookie fica a conhecer ambos os valores. Se estiverem em claro é uma irresponsabilidade e incompetência brutal por parte do responsável pelo sistema, estando encriptado pode acontecer que com um bom bocado de paciência se descubra algo... Além disso o que tu queres é uma função de encriptação, não de hash. 😉 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
Gurzi Posted July 5, 2006 at 03:39 PM Report #36374 Posted July 5, 2006 at 03:39 PM Se calhar ainda estou um bocado confuso entre encriptação e hash! Isto é complicado 😉 responde-me só aquela questão. Se ao passares a m6.portugalaprogramar.pt/codigos.php tens que usar o campo "domain" com portugalaprogramar.pt ??
M6 Posted July 5, 2006 at 03:45 PM Report #36376 Posted July 5, 2006 at 03:45 PM Se calhar ainda estou um bocado confuso entre encriptação e hash! Isto é complicado 😉 São coisas distintas. Funções de Hash é uma coisa, funções de encriptação é outra coisa. No entanto, podes usar uma função de encriptação como função de hash. Dá uma olhadela aqui: http://en.wikipedia.org/wiki/Hash_table e http://en.wikipedia.org/wiki/Hash_function responde-me só aquela questão. Se ao passares a m6.portugalaprogramar.pt/codigos.php tens que usar o campo "domain" com portugalaprogramar.pt ?? Podes manter o valor do campo domain, o valor que lá colocas nada tem directamente a ver com o domínio. Podes nao colocar lá nada ou podes por "batatas"... 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
operacoes Posted July 22, 2006 at 09:47 PM Report #39673 Posted July 22, 2006 at 09:47 PM para quem curte criptografia e segurança da informação vá a <a href="http://www.illuminatti.host.sk/">Illuminatti.host.sk</a> tem muitas explicações e programas para o efeito
djthyrax Posted October 29, 2006 at 04:32 PM Report #60769 Posted October 29, 2006 at 04:32 PM Uma pequena correcção à Tofas: Num sistema de registo de dados, que envolve por exemplo senha, usa-se normalmente a encriptação de dados. Uma função que o php oferece é a função md5, que converte uma string ( <32 char ) numa string de 32 caracteres. qualquer string pode ser "md5ada" tendo ela 1 ou 3206015601541 caracteres. Mas, já li algures que um hash md5 de uma string >32 caracteres é mais fácil de "crackar" do que de uma string <32 caracteres. Se tiver errado, corrijam-me 😄 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
karva Posted October 29, 2006 at 06:04 PM Report #60788 Posted October 29, 2006 at 06:04 PM o que ta a rular e "criar" o teu proprio algoritmo de encriptacao Proud LEIC-A@IST student!
shumy Posted October 29, 2006 at 09:05 PM Report #60847 Posted October 29, 2006 at 09:05 PM É... guia-te por este então "One-Time Pads" 100% seguro. Todos os outros têm como objectivo aproximar-se deste. E da sua impraticabilidade. Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
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