{"id":6372,"date":"2014-06-28T20:14:33","date_gmt":"2014-06-28T20:14:33","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=6372"},"modified":"2014-06-28T20:15:43","modified_gmt":"2014-06-28T20:15:43","slug":"encriptar-contrasenas-con-blowfish","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/","title":{"rendered":"Encriptar contrase\u00f1as con Blowfish"},"content":{"rendered":"<p>Hace ya bastante tiempo ya hablamos en este blog sobre <a href=\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-php\/\" target=\"_blank\">encriptar contrase\u00f1as con PHP<\/a> para registrar, por ejemplo, contrase\u00f1as de usuarios en base de datos. En esa entrada indic\u00e1bamos que hacerlo con la funci\u00f3n md5() de PHP era la soluci\u00f3n aplicada.<\/p>\n<p>Hoy en d\u00eda, la funci\u00f3n md5() no es segura ya que se puede desencriptar las contrase\u00f1as v\u00eda fuerza bruta. Por tanto, si est\u00e1s creando un sitio Web que guarda informaci\u00f3n importante, debes emplear otro sistema de encriptaci\u00f3n m\u00e1s seguro.<\/p>\n<p>En su lugar, podemos emplear por ejemplo la funci\u00f3n <a href=\"http:\/\/www.php.net\/manual\/es\/function.crypt.php\" target=\"_blank\">crypt()<\/a>, empleando el algoritmo <strong><code>CRYPT_BLOWFISH<\/code><\/strong>.<\/p>\n<pre lang=\"php\">\r\necho crypt('123123');\r\n<\/pre>\n<p>Esta funci\u00f3n nos permite hacer h<span class=\"dc-title\">ashing de una sola v\u00eda de un string<\/span>.<\/p>\n<p>Antes de emplear esta t\u00e9cnica deberemos saber si nuestro servidor tiene activo la utilizaci\u00f3n del algoritmo Blowfish.<\/p>\n<pre lang=\"php\">\r\nif (defined(\"CRYPT_BLOWFISH\") && CRYPT_BLOWFISH) {\r\n    echo \"CRYPT_BLOWFISH est\u00e1 activo!\";\r\n}\r\nelse {\r\n    echo \"CRYPT_BLOWFISH no est\u00e1 activo\";\r\n}\r\n<\/pre>\n<p>Ahora, como comprobamos la contrase\u00f1a? Cuando el usuario se registra se guarda en la base de datos su nombre de usuario y el hash asociado a su contrase\u00f1a. Cuando \u00e9ste va a loguearse completar\u00e1 el campo nombre de usuario y contrase\u00f1a, si el hash de esta contrase\u00f1a ingresada en el formulario de login coincide con el hash asociado al nombre de usuario guardado en la base de datos en el momento del registro, el usuario iniciar\u00e1 sesi\u00f3n.<\/p>\n<p>Tambi\u00e9n podr\u00edamos emplear la funci\u00f3n <a href=\"http:\/\/www.php.net\/manual\/es\/function.password-hash.php\" target=\"_blank\">password_hash()<\/a> que tambi\u00e9n crea un nuevo hash de contrase\u00f1a usando un algoritmo de hash fuerte de \u00fanico sentido.<\/p>\n<pre lang=\"php\">\r\necho password_hash('YOUR_PASSWORD', PASSWORD_DEFAULT);\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Hace ya bastante tiempo ya hablamos en este blog sobre encriptar contrase\u00f1as con PHP para registrar, por ejemplo, contrase\u00f1as de usuarios en base de datos. En esa entrada indic\u00e1bamos que hacerlo con la funci\u00f3n md5() de PHP era la soluci\u00f3n aplicada. Hoy en d\u00eda, la funci\u00f3n md5() no es segura ya que se puede desencriptar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5120,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-6372","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Encriptar contrase\u00f1as con Blowfish - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Encriptar contrase\u00f1as con Blowfish - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"Hace ya bastante tiempo ya hablamos en este blog sobre encriptar contrase\u00f1as con PHP para registrar, por ejemplo, contrase\u00f1as de usuarios en base de datos. En esa entrada indic\u00e1bamos que hacerlo con la funci\u00f3n md5() de PHP era la soluci\u00f3n aplicada. Hoy en d\u00eda, la funci\u00f3n md5() no es segura ya que se puede desencriptar [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2014-06-28T20:14:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-06-28T20:15:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/php.png\" \/>\n\t<meta property=\"og:image:width\" content=\"128\" \/>\n\t<meta property=\"og:image:height\" content=\"128\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/\",\"name\":\"Encriptar contrase\u00f1as con Blowfish - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/php.png\",\"datePublished\":\"2014-06-28T20:14:33+00:00\",\"dateModified\":\"2014-06-28T20:15:43+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/php.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/php.png\",\"width\":128,\"height\":128},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Encriptar contrase\u00f1as con Blowfish\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Encriptar contrase\u00f1as con Blowfish - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Encriptar contrase\u00f1as con Blowfish - Jose Aguilar Blog","og_description":"Hace ya bastante tiempo ya hablamos en este blog sobre encriptar contrase\u00f1as con PHP para registrar, por ejemplo, contrase\u00f1as de usuarios en base de datos. En esa entrada indic\u00e1bamos que hacerlo con la funci\u00f3n md5() de PHP era la soluci\u00f3n aplicada. Hoy en d\u00eda, la funci\u00f3n md5() no es segura ya que se puede desencriptar [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2014-06-28T20:14:33+00:00","article_modified_time":"2014-06-28T20:15:43+00:00","og_image":[{"width":128,"height":128,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/php.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/","url":"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/","name":"Encriptar contrase\u00f1as con Blowfish - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/php.png","datePublished":"2014-06-28T20:14:33+00:00","dateModified":"2014-06-28T20:15:43+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/php.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2012\/11\/php.png","width":128,"height":128},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/encriptar-contrasenas-con-blowfish\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Encriptar contrase\u00f1as con Blowfish"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=6372"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6372\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/5120"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=6372"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=6372"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=6372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}