{"id":39996,"date":"2016-11-24T00:50:05","date_gmt":"2016-11-24T06:50:05","guid":{"rendered":"http:\/\/hectorhfblog.wordpress.com\/?p=950"},"modified":"2016-11-24T01:38:29","modified_gmt":"2016-11-24T07:38:29","slug":"codigos-de-encriptacion","status":"publish","type":"post","link":"https:\/\/kenscourses.com\/tc2027fall2016\/syndicated\/codigos-de-encriptacion\/","title":{"rendered":"C\u00f3digos de encriptaci\u00f3n"},"content":{"rendered":"<p class=\"syndicated-attribution\"><em> --Originally published at <a href=\"https:\/\/hectorhfblog.wordpress.com\/2016\/11\/24\/codigos-de-encriptacion\/\"><a href=\"https:\/\/hectorhfblog.wordpress.com\">H\u00e9ctor H.F. Blog<\/a><\/a><\/em><br \/><\/p>\n<p>Hace algunas semanas, les qued\u00e9 a deber c\u00f3digos para encriptar (ambos en Java). Puede ser desde una palabra hasta un texto entero. Si no han le\u00eddo mi entrada sobre la encriptaci\u00f3n, deber\u00edan leerla antes de tratar de averiguar c\u00f3mo funcionan los siguientes c\u00f3digos.<\/p>\n<p>Son dos\u00a0encriptaciones, C\u00e9sar (muy simple) y Vigenere (un poco m\u00e1s avanzada).<\/p>\n<p>El cifrado\u00a0C\u00e9sar consiste en mover cada letra de un texto\u00a0<em>n\u00a0<\/em>posiciones. El n\u00famero de posiciones lo define el usuario. El siguiente c\u00f3digo demuestra el funcionamiento de este cifrado, y ya lleva incluido una serie de caracteres que, al encriptarla, te dar\u00e1 un mensaje real.<\/p>\n<pre>public class Caesar {\n\n\tpublic String encrypt(int key, String plaintext){\n\t\tString finalText = \"\";\n\t\tint[] ascii = new int[plaintext.length()];\n\t\tint[] asciiEncrypted = new int[plaintext.length()];\n\t\tfor(int i = 0; i &lt; plaintext.length(); i++){\n\t\t\tascii[i] = (int) plaintext.charAt(i);\n\t\t}\n\t\tfor(int i = 0; i &lt; ascii.length; i++){ \t\t\tasciiEncrypted [i] = ascii[i] + key; \t\t\tif(asciiEncrypted[i] &gt; 122) {\n\t\t\t\tasciiEncrypted[i] = ascii[i] - (26 - key);\n\t\t\t}\n\t\t}\n\t\tfor(int i = 0; i &lt; asciiEncrypted.length; i++) {\n\t\t\tfinalText = finalText + (char) asciiEncrypted[i];\n\t\t}\n\t\treturn finalText;\n\t}\n\t\n\tpublic static void main(String[] args) {\n\t\tcaesar c = new caesar();\n\t\tSystem.out.println(c.encrypt(12, \"sbgs\u00f1ofbcsghfobgtsfwfqcbcqwawsbhcgwbcqfsofzogdcgwpwzwrorsgdofogi dfcdwodfcriqqw\u00f3bcqcbghfiqqw\u00f3b\"));\n\t}\n\n}\n\n<\/pre>\n<p>El cifrado\u00a0Vigenere es una versi\u00f3n mejorada del C\u00e9sar. Este se construye de varios cifrados C\u00e9sar en distintas partes del mensaje. M\u00e1s detalles aqu\u00ed <a href=\"http:\/\/es.ccm.net\/contents\/143-el-cifrado-vigenere\" rel=\"nofollow\">http:\/\/es.ccm.net\/contents\/143-el-cifrado-vigenere<\/a>. Esta p\u00e1gina explica muy bien el paso a paso de este cifrado\u00a0http:\/\/es.wikihow.com\/codificar-y-decodificar-utilizando-la-cifra-de-Vigen%C3%A8re. Este c\u00f3digo hace algo parecido (obtenido de\u00a0http:\/\/javaenaccion.blogspot.mx\/2012\/05\/cifrador-y-descifrador-del-metodo_28.html)<\/p>\n<pre>public class Vigenere {\n \n    char tablaCesar[] = {\n        'A', 'B', 'C', 'D', 'E',\n        'F', 'G', 'H', 'I', 'J',\n        'K', 'L', 'M', 'N', 'O',\n        'P', 'Q', 'R', 'S', 'T',\n        'U', 'V', 'W', 'X', 'Y',\n        'Z'\n    };\n \n    public char getTextoCifrado(char parTextoClaro, char parTextoClave) {\n        int <div class=\"post-limited-image\"><img alt=\"\" border=\"0\" src=\"https:\/\/kenscourses.com\/tc2027fall2016\/wp-content\/uploads\/2016\/11\/8fcee69e38fddb0dd399355f91a4e6e3.jpg\" \/><\/div>\n<div class=\"post-limited-image\"><img alt=\"\" border=\"0\" src=\"https:\/\/kenscourses.com\/tc2027fall2016\/wp-content\/uploads\/2016\/11\/1e9c24dec06fbd6d09bb1af0ff0bda90.jpg#038;blog=115243980&%23038;post=950&%23038;subd=hectorhfblog&%23038;ref=&%23038;feed=1\" width=\"1\" height=\"1\" \/><\/div><!--more--> = 0;\n        int indiceY = 0;\n \n        for (int i = 0; i &lt; tablaCesar.length; i++) {\n            if (parTextoClaro == tablaCesar[i]) {\n                indiceX = i;\n                break;\n            }\n        }\n \n        for (int j = 0; j &lt; tablaCesar.length; j++) {\n            if (parTextoClave == tablaCesar[j]) {\n                indiceY = j;\n                break;\n            }\n        }\n \n        return tablaCesar[(indiceX + indiceY) % 26];\n    }\n}<\/pre>\n<p>Espero que ahora s\u00ed el tema de encriptaci\u00f3n haya quedado bien entendido. Si todav\u00eda no, los invito a que lean mi\u00a0<em>post\u00a0<\/em>de encriptaci\u00f3n o que pregunten directamente aqu\u00ed lo que gusten. Hasta pronto.<\/p>\n<p>H\u00e9ctor H.F.<\/p><br \/>  <a rel=\"nofollow\" href=\"http:\/\/feeds.wordpress.com\/1.0\/gocomments\/hectorhfblog.wordpress.com\/950\/\"><img alt=\"\" border=\"0\" src=\"https:\/\/kenscourses.com\/tc2027fall2016\/wp-content\/uploads\/2016\/11\/8fcee69e38fddb0dd399355f91a4e6e3.jpg\" \/><\/a> <img alt=\"\" border=\"0\" src=\"https:\/\/kenscourses.com\/tc2027fall2016\/wp-content\/uploads\/2016\/11\/1e9c24dec06fbd6d09bb1af0ff0bda90.jpg#038;blog=115243980&%23038;post=950&%23038;subd=hectorhfblog&%23038;ref=&%23038;feed=1\" width=\"1\" height=\"1\" \/>","protected":false},"excerpt":{"rendered":"<p>&#8211;Originally published at H\u00e9ctor H.F. Blog Hace algunas semanas, les qued\u00e9 a deber c\u00f3digos para encriptar (ambos en Java). Puede ser desde una palabra hasta un texto entero. Si no han le\u00eddo mi entrada sobre la encriptaci\u00f3n, deber\u00edan leerla antes de tratar de averiguar c\u00f3mo funcionan los siguientes c\u00f3digos. Son dos\u00a0encriptaciones, C\u00e9sar (muy simple) y &hellip; <a href=\"https:\/\/kenscourses.com\/tc2027fall2016\/syndicated\/codigos-de-encriptacion\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">C\u00f3digos de encriptaci\u00f3n<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":39997,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,4],"tags":[24],"class_list":["post-39996","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blogs","category-syndicated","tag-tc2027"],"_links":{"self":[{"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/posts\/39996","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/comments?post=39996"}],"version-history":[{"count":2,"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/posts\/39996\/revisions"}],"predecessor-version":[{"id":40001,"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/posts\/39996\/revisions\/40001"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/media\/39997"}],"wp:attachment":[{"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/media?parent=39996"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/categories?post=39996"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kenscourses.com\/tc2027fall2016\/wp-json\/wp\/v2\/tags?post=39996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}