<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comentários sobre: Criptografia &#8211; Cifra de Vigenère	</title>
	<atom:link href="https://www.bosontreinamentos.com.br/seguranca/criptografia-cifra-de-vigenere/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/seguranca/criptografia-cifra-de-vigenere/</link>
	<description>Artigos e Tutoriais sobre Desenvolvimento de Software, Bancos de Dados SQL, Linux, Lógica de Programação, Inteligência Artificial, Hardware, Eletrônica, Arduino, Técnicas e Teorias de Estudo e Aprendizagem, Carreira em TI, Ciências Cognitivas, e muito mais!</description>
	<lastBuildDate>Tue, 10 Mar 2026 10:55:15 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.6</generator>
	<item>
		<title>
		Por: DOUGLAS LANDIM		</title>
		<link>https://www.bosontreinamentos.com.br/seguranca/criptografia-cifra-de-vigenere/#comment-24029</link>

		<dc:creator><![CDATA[DOUGLAS LANDIM]]></dc:creator>
		<pubDate>Fri, 24 Nov 2017 00:23:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=8014#comment-24029</guid>

					<description><![CDATA[#include
#include
#define MAX 200

int main()
{
    //variaveis de entrada
        char texto_claro[MAX];
            printf(&quot;\n Escreva o texto claro: &quot;);
            gets(texto_claro);
            strlwr(texto_claro);
        char chave[MAX];
            printf(&quot;\n Escreva a chave: &quot;);
            gets(chave);
            strlwr(chave);
    //variaveis internas do programa
        //contadores
        int i,j,
        //medidas de tamanho
        m = strlen(texto_claro),
        m2 = strlen(chave),n,
        //ids, são inteiros que correspondem aos valores ascii dos chars
        id_texto, id_chave, id_texto_cifrado, id_texto_descifrado;

    //variaveis de saida
        char texto_cifrado[m],texto_descifrado[m];

    //Criptografando
    printf(&quot;\n Frase cifrada: \n&quot;);
        for(i = 0,j=0; i  subtrai 97 do range de contagem das letras, que vai de 0 a 25 ao invés de 97 a 122 do ascii
                id_chave = chave[j % m2] - &#039;a&#039;;// mesmo processo
                id_texto_cifrado = ((id_texto + id_chave )%26) + &#039;a&#039;; //volta o id calculado ao range normal da tabela ascii
                texto_cifrado[i] = id_texto_cifrado;
                j++;
            }else texto_cifrado[i] = texto_claro[i]; //copia os espaços
        }
    puts(texto_cifrado);

    //Descriptografando
    printf(&quot;\n Frase descifrada: \n&quot;);
    for(i = 0,j=0; i  subtrai 97 do range de contagem das letras, que vai de 0 a 25 ao invés de 97 a 122 do ascii
                id_chave = chave[j % m2] - &#039;a&#039;;// mesmo processo
                if(id_texto &#062;= id_chave)
                    id_texto_descifrado = ((id_texto - id_chave)) + &#039;a&#039;; //subtrai o valor da chave do valor do texto, e soma &#039;a&#039; para voltar o id calculado ao range normal da tabela ascii
                else id_texto_descifrado = &#039;z&#039; + ((id_texto - id_chave)) + 1; //a subtração da linha acima passou do a, e o valor da negativo, então ele volta do z pra trás e soma 1 pq o valor 0 tem q ser contado
                texto_descifrado[i] = id_texto_descifrado;
                j++;
            }else texto_descifrado[i] = texto_cifrado[i]; //copia os espaços
        }
    puts(texto_descifrado);
    return 0;
}]]></description>
			<content:encoded><![CDATA[<p>#include<br />
#include<br />
#define MAX 200</p>
<p>int main()<br />
{<br />
    //variaveis de entrada<br />
        char texto_claro[MAX];<br />
            printf(&#8220;\n Escreva o texto claro: &#8220;);<br />
            gets(texto_claro);<br />
            strlwr(texto_claro);<br />
        char chave[MAX];<br />
            printf(&#8220;\n Escreva a chave: &#8220;);<br />
            gets(chave);<br />
            strlwr(chave);<br />
    //variaveis internas do programa<br />
        //contadores<br />
        int i,j,<br />
        //medidas de tamanho<br />
        m = strlen(texto_claro),<br />
        m2 = strlen(chave),n,<br />
        //ids, são inteiros que correspondem aos valores ascii dos chars<br />
        id_texto, id_chave, id_texto_cifrado, id_texto_descifrado;</p>
<p>    //variaveis de saida<br />
        char texto_cifrado[m],texto_descifrado[m];</p>
<p>    //Criptografando<br />
    printf(&#8220;\n Frase cifrada: \n&#8221;);<br />
        for(i = 0,j=0; i  subtrai 97 do range de contagem das letras, que vai de 0 a 25 ao invés de 97 a 122 do ascii<br />
                id_chave = chave[j % m2] &#8211; &#8216;a&#8217;;// mesmo processo<br />
                id_texto_cifrado = ((id_texto + id_chave )%26) + &#8216;a&#8217;; //volta o id calculado ao range normal da tabela ascii<br />
                texto_cifrado[i] = id_texto_cifrado;<br />
                j++;<br />
            }else texto_cifrado[i] = texto_claro[i]; //copia os espaços<br />
        }<br />
    puts(texto_cifrado);</p>
<p>    //Descriptografando<br />
    printf(&#8220;\n Frase descifrada: \n&#8221;);<br />
    for(i = 0,j=0; i  subtrai 97 do range de contagem das letras, que vai de 0 a 25 ao invés de 97 a 122 do ascii<br />
                id_chave = chave[j % m2] &#8211; &#8216;a&#8217;;// mesmo processo<br />
                if(id_texto &gt;= id_chave)<br />
                    id_texto_descifrado = ((id_texto &#8211; id_chave)) + &#8216;a&#8217;; //subtrai o valor da chave do valor do texto, e soma &#8216;a&#8217; para voltar o id calculado ao range normal da tabela ascii<br />
                else id_texto_descifrado = &#8216;z&#8217; + ((id_texto &#8211; id_chave)) + 1; //a subtração da linha acima passou do a, e o valor da negativo, então ele volta do z pra trás e soma 1 pq o valor 0 tem q ser contado<br />
                texto_descifrado[i] = id_texto_descifrado;<br />
                j++;<br />
            }else texto_descifrado[i] = texto_cifrado[i]; //copia os espaços<br />
        }<br />
    puts(texto_descifrado);<br />
    return 0;<br />
}</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
