{"id":1159,"date":"2024-07-31T11:34:51","date_gmt":"2024-07-31T09:34:51","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=1159"},"modified":"2024-07-31T11:34:51","modified_gmt":"2024-07-31T09:34:51","slug":"37-funciones-de-encriptacion-y-desencriptacion","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/databases\/sql\/37-funciones-de-encriptacion-y-desencriptacion\/","title":{"rendered":"37. Funciones de encriptaci\u00f3n y desencriptaci\u00f3n"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En este cap\u00edtulo vamos a ver algunas funciones que sirven para el proceso de <strong>encriptaci\u00f3n de informaci\u00f3n<\/strong>. Casos \u00fatiles son el almacenaje de las passwords. En <strong>SQL<\/strong> tenemos diferentes funciones.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Funci\u00f3n MD5()<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esta funci\u00f3n convierte una cadena de texto a un valor de tipo <strong>hash<\/strong> de 128 bits. Su sintaxis es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">MD5('mipasswd');<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Funci\u00f3n SHA1()<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Es un mecanismo mas seguro que <strong><em>MD5().<\/em><\/strong> Tiene una extensi\u00f3n de <strong>hasta<\/strong> 160 bits. Su sintaxis es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SHA1('mipasswd')<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Funci\u00f3n SHA2()<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Permite indicar el n\u00famero de bits que va a formar el <strong>hash.<\/strong> A mayor n\u00famero de bits se vuelve m\u00e1s dif\u00edcil de hackear. Es el mecanismo m\u00e1s popular.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">SHA2('passwd',256);<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Funci\u00f3n AES_ENCRYPT()<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esta funci\u00f3n es como si tuvi\u00e9ramos un factor de doble autenticaci\u00f3n, donde aparte de poner la contrase\u00f1a nos llega un c\u00f3digo por mensaje a nuestro tel\u00e9fono o a nuestro correo electr\u00f3nico. Su sintaxis es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">AES_ENCRYPT('passwd','llave_secreta'); \/\/ Encripta\nAES_DECRYPT('nombre_campo','llave_secreta'); \/\/ Desencripta<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Simulado de una tarjeta de cr\u00e9dito<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos a crear un ejercicio para simular el guardado de una tarjeta de cr\u00e9dito.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">CREATE TABLE pagos_recurrentes(\ncuenta VARCHAR(8) PRIMARY KEY,\nnombre VARCHAR(50) NOT NULL,\ntarjeta BLOB\n);\n\nINSERT INTO pagos_recurrentes VALUES(\n('12345678','Francisco',AES_ENCRYPT('1234567890123488','12345678'),\n('12345677','Beatriz',AES_ENCRYPT('1234567890123477','12345677'),\n);\n\nSELECT * FROM pagos_recurrentes;\n\n-- Desencriptamos\nSELECT CAST(AES_DECRYPT(tarjeta, '12345678')AS CHAR) AS tdc \nFROM pagos_recurrentes<\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Nota:<\/strong> para el guardado de la tarjeta, usar como tipo de dato <strong>BLOB<\/strong>.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>En este cap\u00edtulo vamos a ver algunas funciones que sirven para el proceso de encriptaci\u00f3n de informaci\u00f3n. Casos \u00fatiles son el almacenaje de las passwords. En SQL tenemos diferentes funciones.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1076,"menu_order":36,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1159","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"En este cap\u00edtulo vamos a ver algunas funciones que sirven para el proceso de encriptaci\u00f3n de informaci\u00f3n. Casos \u00fatiles son el almacenaje de las passwords. En SQL tenemos diferentes funciones.","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1159"}],"version-history":[{"count":1,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1159\/revisions"}],"predecessor-version":[{"id":1160,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1159\/revisions\/1160"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/1076"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}