quarta-feira, 11 de junho de 2014

Torrent

Categoria Internet.
O que é Torrent?
 

Hoje em dia, é muito comum encontrar arquivos de todos os tipos e tamanhos sendo compartilhados pela internet através de arquivos torrent. Só que ainda existe um grande público que não faz ideia do que “torrent” realmente significa, muito menos como um arquivo de poucos KB pode trazer outro de diversos GB.
A lógica do torrent é a seguinte: a primeira pessoa a disponibilizar um download é conhecida como o primeiro seed. Uma segunda pessoa baixa este conteúdo e também passa a disponibilizá-lo, tornando-se mais um seed. Basicamente, quanto mais seeds houver de um mesmo arquivo, mais rápidos e eficientes serão os downloads, pois mais pessoas estarão disponibilizando o mesmo.

Arquivos torrent

Torrent é a extensão de arquivos utilizados por um protocolo de transferência do tipo P2P (Peer to Peer). Essa transferência acontece da seguinte maneira: os arquivos transferidos são divididos em partes e cada pessoa que tem tal arquivo ajuda a fazer o upload a outros usuários. Isso reduz significantemente o consumo de banda do distribuidor original do arquivo, não sendo necessário que o mesmo fique armazenado em um servidor.
Para compartilhar esses arquivos, é necessário usar um programa específico, conhecido como cliente. Ele obtém as informações contidas nos arquivos e se encarrega de toda a comunicação entre os usuários.

Como funciona

Para baixar via torrent, você não pesquisa diretamente os arquivos que deseja. O primeiro passo é pesquisar o arquivo torrent que contenha essas informações. Ao abrir este arquivo com um programa compatível (ou seja, cliente), você vai visualizar todo seu conteúdo e pode baixar somente aquilo que desejar.
Diferentemente de transferências via HTTP, um cliente torrent faz diversos pedidos em diferentes sockets (pontos finais de uma rede, ou seja, a localização de um arquivo). Isso significa mais de uma fonte para você baixar. Outra diferença é que o protocolo torrent baixa de uma maneira não sequencial e vai “montando” o arquivo como se fosse um quebra-cabeça, juntando as diferentes partes dos arquivos baixados.
Basicamente, todas as pessoas que baixaram o torrent enviam pedaços dele para outras. No final do download, o cliente unifica os pedaços, criando o arquivo que você queria baixar.

Quais são os clientes de torrent?

Há diversos clientes torrent que você pode usar para transferir e compartilhar seus arquivos. Um dos mais utilizados hoje em dia é o µTorrent, por ser um dos mais leves e eficazes do mercado. Outras opções incluem o BitTorrent, o BitComet e o Azureus, só para citar alguns. Você pode verificar outros clientes (e baixá-los) clicando aqui.

Procurando torrents para baixar

Há diversos sites onde os usuários disponibilizam seus arquivos torrent. Porém, como o número desses serviços é crescente, foi criado outro tipo de serviço: o de pesquisar arquivos nesses sites sem a necessidade de vasculhar um por um. Entre alguns dos mais populares estão o YouTorrent e o Torrents.to.

Torrents e a pirataria

Por causa da popularização de sites como o The Pirate Bay, muitas pessoas, erroneamente, associam torrents à pirataria. Torrent nada mais é do que uma forma de compartilhamento de arquivos utilizada por organizações sérias. Um bom exemplo do uso de torrent como forma de divulgação é o Ubuntu, que tem suas novas versões disponibilizadas para download em HTML e torrent.
Ligar torrent à pirataria é uma atitude equivocada e que apenas cria um estigma em cima de uma tecnologia que cresce a cada dia e tem potencial para mudar permanentemente a maneira como é realizada a troca de arquivos na internet.
Portanto, agora você já sabe o que tem que fazer: escolher um cliente, um serviço de busca e começar a baixar.

terça-feira, 10 de junho de 2014

Criptografia

Categoria Segurança da Informação.

Criptografia.




A criptografia diz respeito a conceitos e técnicas usadas para codificar uma informação, de tal forma que somente seu real destinatário e o emissor da mensagem possam acessá-la, com o objetivo de evitar que terceiros interceptem e entendam a mensagem.
 
Atualmente, as técnicas de criptografia mais conhecidas envolvem o conceito das chaves criptográficas, que são um conjunto de bits, baseados em um algarismo capaz de interpretar a informação, ou seja, capaz de codificar e decodificar. Se a chave do receptor não for compatível com a do emissor, a informação então não será extraída.

Existem dois tipos de chave: a chave pública e a chave privada.
 
A chave pública é usada para codificar as informações, e a chave privada é usada para decodificar.
 
Assim, na pública, todos têm acesso, mas para 'abrir' os dados da informação, que aparentemente são sem sentido, é preciso da chave privada, que só o emissor e receptor originais têm.
 
Atualmente, a criptografia pode ser considerada um método 100% seguro, ou seja, quem a utiliza para mandar e-mails e proteger seus arquivos, estará protegido contra fraudes e tentativas de invasão.

Os termos 'chave de 64 bits' e 'chave de 128 bits' são usados para expressar o tamanho da chave, assim, quanto mais bits forem utilizados, mais segura será essa criptografia.

Um exemplo disso é se um algoritmo usa um chave de 8 bits, por exemplo, apenas 256 chaves poderão ser utilizadas para decodificar essa informação, porque 2 elevado a 8 é igual a 256. Assim, um terceiro pode tentar gerar 256 tentativas de combinações e decodificar a mensagem, que mesmo sendo uma tarefa difícil, não é impossível. Por isso, quanto maior o número de bits, mais segura será a criptografia.

Existem dois tipos de chaves criptográficas, as chaves simétricas e as chaves assimétricas.

Chave Simétrica

É um tipo de chave simples, que é usada para a codificação e decodificação. Entre os algoritmos que usam essa chave, estão:

  • DES (Data Encryption Standard): Faz uso de chaves de 56 bits, que corresponde à aproximadamente 72 quatrilhões de combinações. Mesmo sendo um número absurdamente alto, em 1997, conseguiram quebrar esse algoritmo através do método de 'tentativa e erro', em um desafio na internet.
  • RC (Ron's Code ou Rivest Cipher): É um algoritmo muito utilizado em e-mails e usa chaves de 8 a 1024 bits, além de possuir várias versões que se diferem uma das outras pelo tamanho das chaves.
  • EAS (Advanced Encryption Standard): Hoje em dia é um dos melhores e mais populares algoritmo de criptografia existente. Voce pode definir o tamanho da chave como sendo de 128bits, 192bits ou 256bits.
  • IDEA (International Data Encryption Algorithm): É um algoritmo que usa chaves de 128 bits, parecido com o DES. Seu ponto forte é a fácil implementação de software.
 

As chaves simétricas não são totalmente seguras quando se trata de informações muito valiosas, principalmente pelo fato de que o emissor e o receptor têm que conhecer a mesma chave. Assim, a transmissão pode não ser segura e o conteúdo chegar a terceiros.

Chave Assimétrica

A chave assimétrica utiliza duas chaves: a privada e a pública. Elas se resumem da seguinte forma: a chave pública para codificar e a chave privada para decodificar, levando-se em consideração que a chave privada é secreta.

Entre os algoritmos utilizados, estão:



  • RSA (Rivest, Shamir and Adleman): É um dos algoritmos de chave assimétrica mais utilizados, em que dois números primos (aqueles que só podem ser divididos por 1 e por eles mesmos) são multiplicados para a obtenção de um terceiro valor. Para isso, é preciso fazer fatoração, que é descobrir os dois primeiros números a partir do terceiro, que é um cálculo trabalhoso. Assim, se números grandes forem utilizados, será praticamente impossível descobrir o código. A chave privada do RSA são os números que são multiplicados e a chave pública é o valor que será obtido.


  • ElGamal: Utiliza-se do 'logaritmo discreto', que é um problema matemático que o torna mais seguro. É bastante utilizado em assinaturas digitais.

sábado, 7 de junho de 2014

Firewall

Categoria Redes.
 
Tipos de firewall:
Existem dois principais tipos de firewall que são usados:
Filtragem de Pacotes:
Muito utilizada em redes de pequeno e médio porte, a filtragem de pacotes determina quais endereços IP podem estabelecer comunicação para transmitir e/ou receber dados, além de liberar ou não acesso a serviços como email, mensageiros instantâneos como MSN e hoje em dia as redes sociais (Facebook, Orkut, Google +, etc.).  Se for bem configurado, um firewall trabalhando com filtragem de pacotes é capaz de analisar informações sobre a conexão e o conteúdo presente na transferência de dados.
Controle de Aplicação:
É instalado em um servidor e são mais conhecidos como Proxy. Todo tráfego obrigatoriamente passa pelo firewall que atua como intermediário entre os computadores e a internet. É muito seguro, pois toda aplicação para funcionar e trocar informações precisa do Proxy além de enquadrar-se nas regras estabelecidas.
Firewall é totalmente seguro?
O Firewall não possui total segurança, pois a cada dia surgem mais pessoas interessadas em burlar o índice de segurança. Os hackers estão cada vez mais eficientes e oportunistas, a cada momento encontram novas maneiras de ultrapassar as barreiras de segurança do Firewall deixando que as informações do seu computador sejam compartilhadas e até espalhadas pelo mundo virtual. Vamos entender o seguinte: Se você tiver um Firewall por software e porventura executar um programa obscuro que baixou de algum site da internet, esse mesmo programa é capaz de realizar uma nova configuração em seu Firewall e desse momento em diante aceitar novas conexões obscuras. O Firewall por hardware, por sua vez, mesmo que seu computador já esteja contaminado, o mesmo não é possível.
Recapitulando as funções do Firewall em seu computador: Proteção contra invasões em seu computador, impedimento de dados não desejados entrem na sua máquina e bloqueio de envio de dados contidos em seu computador que não foram mencionados nas configurações. Para tanto, o Firewall, seja qual for o modelo, não protege sua máquina contra programas baixados por você em sites da internet, não impede que programas de e-mail baixem spams e ainda não consegue impedir que você crie situações que coloque a sua máquina em risco.
A melhor maneira de conseguir proteger o seu computador é configurar o Firewall para que faça um bloqueio de tudo. Somente assim, você terá um controle de tudo que for transmitido em seu computador, e somente você terá a permissão de liberar ou não programas. Em caso de dúvidas na configuração de seu Firewall, seja qual modelo for, não tente fazer sozinho, pois essas tentativas poderão acarretar em muitos prejuízos, como tráfego de informações entre outras tantas coisas. Peça ajuda à alguma pessoa em que você confie ou mesmo a um profissional da área.
 

quinta-feira, 5 de junho de 2014

Sistema de Cadastro de Funcionários em C++

 Sistema de Cadastro de Funcionários em C++

Categoria Programação.
Primeiramente faça download do Dev C++ 
Aqui

 

Agora insira o seguinte código-fonte:

 

#include<stdlib.h>
#include<stdio.h>
struct cadastro{
char nome [40];
    int idade;
    char sexo;
    char endereco[100];
    char telefone[15];
    float salario;
};
struct cadastro cad[100];
int Cadastros=0;
void menu();
void quebraTabula();
void insereUmaLinha();
void insereDuasLinhas();
void tabula();
void cadastrar();
void visualizarCadastro();
float calculaDesconto(float sal);
void sair();
void limpaTela();
int main (void)
{
    menu();
    system("pause");
    return 0;
}
void quebraTabula()
{
printf("\n\n\t");
}
void insereUmaLinha()
{
printf("\n");
}
void insereDuasLinhas()
{
printf("\n\n");
}
void tabula()
{
printf("\t");
}
void sair()
{
exit(1);
}
void limpaTela()
{
system("cls");
}
void menu()
{
limpaTela();
int opc;
printf("Escolha uma opcao:");
quebraTabula();
printf("1 - Para Cadastrar um novo funcionario");
insereUmaLinha();
tabula();
printf("2 - Para visualizar o todos os cadastro");
insereUmaLinha();
tabula();
printf("3 - Para Sair");
insereDuasLinhas();
printf("Opcao: ");
scanf("%d", &opc);
getchar();
switch(opc){
case 1:
     cadastrar();
     break;
     case 2:
          visualizarCadastro();
          break;                                              
case 3: sair();
break;
default:
        menu();
        }
}
void cadastrar()       
{
     char opc;
     int contador=0;
     int qtd=0;
     limpaTela();
     printf("Quantos funcionarios deseja cadastrar: ");
     scanf("%d", &qtd);
     getchar();
     if (qtd > 100 || qtd==0)
    {
     insereDuasLinhas();
     printf ("A quantidade deve estar entre 1 e 100. O limite %c 100 funcionarios.", 130);
     insereDuasLinhas();
     printf("Pressione uma tecla para inserir um novo valor...");
     system("pause > NULL");
     cadastrar();
                 }
                 else
                 {
                     Cadastros=qtd-1;
                     insereDuasLinhas();
     for(contador = 0; contador < qtd; contador++)
     {
     printf("Cadastrar o funcionario %d:", contador+1);            
     insereDuasLinhas();
     printf("Digite o nome: ");
     gets(cad[contador].nome);
     printf("Digite a sua idade: ");
     scanf("%d", &cad[contador].idade);
     getchar();
     printf("Informe o sexo  (Apenas M para masculino ou F para feminino): ");
     scanf("%c", &cad[contador].sexo);
     getchar();
     printf("Digite o endereco: ");
     gets(cad[contador].endereco);
     printf("Digite o telefone: ");
     gets(cad[contador].telefone);
     printf("Informe o salario  (Apenas numeros. Ex.: 3500.00): ");
     scanf("%f", &cad[contador].salario);
     getchar();
     insereDuasLinhas();
     }
       printf("Cadastro realizado com sucesso! Deseja voltar ao menu? (s/n):");
     scanf ("%c", &opc);
     getchar();
     if (opc=='s'){
     menu();
     }else{
           insereDuasLinhas();
           printf("Seu programa pode ser fechado!");
           insereDuasLinhas();
           }
       }
    }
           float calculaDesconto(float sal)
     {
                 return (sal*0.93);
                 }
                 void visualizarCadastro()
                 {
                      char opc;
                      int contador;
                      float comDesconto;
                      limpaTela();
                     if (Cadastros==0)
                      {
                                  printf("Nao ha cadastros realizados!");
                     
                                           insereDuasLinhas();
                                           }
                                             else
                      {
                          printf("Todos os funcionarios cadastrados:");
                          for (contador=0;contador<=Cadastros;contador++)
                         
     {
                              comDesconto=calculaDesconto(cad[contador].salario);
                              insereDuasLinhas();
                              tabula();
                              printf("Nome: %s", cad[contador].nome);
                      insereUmaLinha();
                      tabula();
                      printf("Idade: %d", cad[contador].idade);
                      insereUmaLinha();
                      tabula();  
                      printf("Sexo: %c", cad[contador].sexo);
                      insereUmaLinha();
                      tabula();     
                      printf("Endereco: %s", cad[contador].endereco);
                      insereUmaLinha();
                      tabula();      
                       printf("Telefone: %s", cad[contador].telefone);
                      insereUmaLinha();
                      tabula();
                      printf("Salario: R$ %.2f", cad[contador].salario);
                      insereUmaLinha();
                      tabula();
                      printf("Salario com desconto: R$ %.2f", comDesconto);
                      insereUmaLinha();
                      insereDuasLinhas();
                      }
                      }
                      printf("Deseja voltar ao menu? (s/n):");
                      scanf("%c", &opc);
                      getchar();
                      if (opc=='s'){
                                    menu();
                                    }else{
                                          insereDuasLinhas();
                                          printf("Seu programa pode ser fechado!");
                                          insereDuasLinhas();
                                          }
                                          }

 

 

Vá no Menu Executar e clique em Compilar & Executar ou aperte a tecla F9 ele vai pedir para Salvar você Salva com o nome que você quiser e pronto execute o programa!



 

quarta-feira, 4 de junho de 2014

Sockets

Categoria Redes.
Sockets em linguagem Lua.
 
Primeiramente faça o download do programa Lua clicando Aqui
Depois de ter feito o download do programa Lua e instalado insira o seguinte código-fonte no programa SciTE que vem junto com o programa Lua:

Código do Cliente:

require('socket')
io.write("Escolha um servidor > ");
servidor = io.read();
io.write("Escolha uma porta > ");
porta = io.read();
cliente = socket.connect(servidor, porta);
if cliente then
 io.write("Conectado com sucesso!\n");
 while true do
  io.write("Envie um mensagem >");
  cliente:send(io.read().."\n");
  reply = cliente:receive();
  io.write(reply .. "\n");
 end
end

Não se esqueça de Salvar como cliente.lua

Código do Servidor:

--Sockets, Rede
require('socket');
--Constantes
porta = 3030;

servidor = socket.bind('*', porta);
io.write("Aguardando na porta "..porta.."\n");
cnx = servidor:accept();
io.write("Conexão realizada")
while true do
 msg = cnx:receive();
 io.write(msg .. "\n");
 io.write("Sua resposta > ");
 cnx:send(io.read() .. "\n");
end
io.read();

Não se esqueça de Salvar como servidor.lua

Você vai executar o servidor primeiro e depois você executa o cliente ele vai pedir para você escolher o servidor você digita localhost e depois ele vai pedir uma porta ai você digita 3030 ai irá estabelecer uma conexão de duas telas interagindo cliente e servidor!