{"id":3267,"date":"2019-08-28T15:42:57","date_gmt":"2019-08-28T19:42:57","guid":{"rendered":"http:\/\/linguagemprisma.br4.biz\/blog\/?p=3267"},"modified":"2024-06-23T20:59:46","modified_gmt":"2024-06-24T00:59:46","slug":"pmd5-1-2-atualizacao","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/modo_texto\/pmd5-1-2-atualizacao\/","title":{"rendered":"pmd5 &#8211; 1.2 atualiza\u00e7\u00e3o"},"content":{"rendered":"<p>MD5 &#8211; algoritmo criptogr\u00e1fico que gera uma chave 128bits, \u00fatil para guardar senhas, ou para verificar a integridade de arquivos. (para mais detalhes de <a href=\"https:\/\/pt.wikipedia.org\/wiki\/MD5\" target=\"_blank\" rel=\"noopener\">uma busca pela net<\/a>)<\/p>\n<h2>Prisma j\u00e1 tinha uma biblioteca md5 feita em prisma puro.<\/h2>\n<p>Como seu desempenho n\u00e3o era bom com arquivos grandes, acabei portando uma da linguagem C: a pmd5., mais r\u00e1pida e eficiente. Ainda sim para arquivos muito grandes era necess\u00e1rio esperar at\u00e9 o fim do processo, isso parava o programa. Foi por causa disso que fiz uma atualiza\u00e7\u00e3o: agora \u00e9 poss\u00edvel fazer o hash md5 de bloco em bloco com as novas fun\u00e7\u00f5es pmd5.inicialize(), pmd5.atualize() e pmd5.finalize_hex(), pmd5.finalize();<\/p>\n<p>Para arquivos pequenos, pode continuar usando as fun\u00e7\u00f5es pmd5.binario() e pmd5.hex();<\/p>\n<p>Baixe aqui os fontes para compilar em Linux: <a href=\"http:\/\/www.mediafire.com\/file\/k2shuhwqk4x5k48\/pmd5.zip\/file\" target=\"_blank\" rel=\"noopener\">pmd5-1.2<\/a><\/p>\n<p>Ap\u00f3s baixar os fontes, entre na pasta pmd5\/pmd5-source\/ e no terminal Linux execute o compila.sh<\/p>\n<p><span style=\"color: #800000;\">pmd5 compilado para Linux(32\/64) e Win32 em breve!<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>Exemplos:<\/p>\n<pre class=\"lang:prisma decode:true \">\/\/testado em linux. \r\nlocal pmd5 = inclua'pmd5' \r\nlocal file = 'md5.h'; \r\n\/\/Quando o arquivo for muito grande, para o programa n\u00e3o ficar travado, use esta t\u00e9cnica: \r\nlocal a,err = es.abra(file,'leiturabin'); \r\nse nao a entao \r\n       erro(err); \r\nfim local txt = a:leia(100); \/\/processa de 100 em 100 bytes. \r\nlocal ctx = pmd5.inicialize();\/\/retorna um objeto ctx(um contexto md5) \r\n\r\nenquanto txt inicio \r\n        ctx:atualize(txt); \/\/note o uso dos dois pontos para acessar o m\u00e9todo do objeto. \r\n        txt = a:leia(100); \/\/ imprima(txt); \r\nfim \r\na:feche(); \r\nlocal final_md5 = ctx:finalize_hex(); \r\nimprima(final_md5); \r\nse sis.nome=='linux' entao\r\n      sis.execute('md5sum ' .. file); \r\nfim<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"\"><code class=\"\" data-line=\"\"><\/code><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MD5 &#8211; algoritmo criptogr\u00e1fico que gera uma chave 128bits, \u00fatil para guardar senhas, ou para verificar a integridade de arquivos. (para mais detalhes de uma busca pela net) Prisma j\u00e1 tinha uma biblioteca md5 feita em prisma puro. Como seu desempenho n\u00e3o era bom com arquivos grandes, acabei portando uma da linguagem C: a pmd5.,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,6,7],"tags":[],"class_list":["post-3267","post","type-post","status-publish","format-standard","hentry","category-encriptacao","category-modo_texto","category-prisma"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/comments?post=3267"}],"version-history":[{"count":9,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3267\/revisions"}],"predecessor-version":[{"id":3312,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3267\/revisions\/3312"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=3267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=3267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=3267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}