0

Usando criptografia(MD5) no Java

-

Fala pessoal tudo bem com vocês? Comigo está ótimo!
Que tal aprender um pouco sobre criptografia com uma linguagem de programação e usando um algoritmo MD5.

Criptografia:
Criptografia (Do Grego kryptós, “escondido”, e gráphein, “escrita”) é o estudo dos princípios e técnicas pelas quais a informaçãopode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (detentor da “chave secreta”), o que a torna difícil de ser lida por alguém não autorizado. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade(Wikipedia).

MD5 (Message-Digest algorithm 5) é um algoritmo  de hash  de 128 bits  unidirecional desenvolvido pela RSA Data Security, Inc., descrito na RFC 1321, e muito utilizado por softwares com protocolo ponto-a-ponto(P2P , ou Peer-to-Peer, em inglês) na verificação de integridade de arquivos e logins(Wikipédia).

A linguagem Java oferece uma api chamada Java Cryptography Architecture para ser usado com criptografia de dados e atáves dessa api conseguimos criptografar dados em várias tipos de algoritmo como MD5 e SHA entre outros. Com isso, vou ultilizar os recursos dessa api usando a linguagem Java ( quem sabe em outro post usar Ruby).

Neste exemplo irei utilizar algoritmo MD5 e caso queira saber mais e enteder melhor quais são os outro algoritmos e como eles funciona  pergunte ao Oráculo Google  e faça umas perguntas pra ele(Uma dica que remonedo bastente, pesquisa mais sobre o assunto estudado).

Então vamos a parte mais “gostosinha” que é o código =):

Primeiro vamos crie um projeto em seu IDE predileto com o nome “criptografia” e uma classes interface chamada “Criptografia.java”

package criptografia;

import java.security.NoSuchAlgorithmException;

public interface Criptografia{

    String encrypt(String value) throws NoSuchAlgorithmException;

}

 

Depois vamos criar uma classe abstrata que terá o básico para efetuar uma criptografia, más ela não será responsável por determinar qual tipo de algortimo será utilizado.

package criptografia;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;

public class CriptografiaGenerica {
    
    private MessageDigest messageDigest;
    private BASE64Encoder encoder;
    
    protected void useAlgortithm(String algorithm) throws NoSuchAlgorithmException{
    if (messageDigest == null || messageDigest.getAlgorithm() != algorithm){
        messageDigest = MessageDigest.getInstance(algorithm);
    }
        if (encoder == null) {
            encoder = new BASE64Encoder();
        }
        
    }
    
    protected String encryptByAlgorithm(String algorithm, String value) throws NoSuchAlgorithmException{
        if (value == null) {
            throw new IllegalArgumentException("Valor null");
        }
        
        useAlgortithm(algorithm);
        byte[] hash = messageDigest.digest(value.getBytes());
        return encoder.encode(hash);
    }
    
}

 

Agora criaremos a classe que especifica qual tipo de algortimo irá ser ultilizado, que no nosso caso vai ser o algoritmo MD5.

 

package criptografia;
import java.security.NoSuchAlgorithmException;
public class CriptografiaMD5 extends CriptografiaGenerica implements Criptografia{
    public String encrypt(String value) throws NoSuchAlgorithmException{
    return encryptByAlgorithm("MD5" , value);
    }
}

 

Pronto já criamos as nossa classes agora é so criar uma classe imprime que vai ter o objeto do tipo cripotografia.

package criptografia;

import java.security.NoSuchAlgorithmException;

public class ImprimeCriptografia {
    
    public static void main(String[] args) throws NoSuchAlgorithmException{
    Criptografia criptografia;
    
    //Usando MD5
    criptografia = new CriptografiaMD5();
    System.out.println("MDH: " + criptografia.encrypt("Criptografia MD5 com Java"));
    }
    
}

Pronto acabou, não foi fácil pessoal utilizar criptografia com java?
Obs: Este exemplo foi só pra amostra como é fácil usar criptografia na lingugem java, não expliquei passo a passo o que cada class faz. Más se tiverem dúvida pessoal e só perguntar nos comentários dos post que ficarei grato em responder todas as dúvidas.

 

 

 

2

AndroidPIT – Pit Stop obrigatório para quem tem Android!

-

AndroidPIT

Não é de hoje que os smartphones com Android estão cada vez mais presentes no mercado. Difícil encontrar alguém que não tenha ou não esteja pensando em comprar um.

Com um desses aparelhos você pode ler e responder emails, acessar suas redes sociais favoritas como Facebook ou Twitter e ainda pode se entreter com milhares de jogos disponíveis na plataforma.

E no mercado de smartphones, a Samsung está cada vez mais poderosa. Celulares como Galaxy S3 Mini lhe oferecem um excelente custo-benefício e você terá em mãos um aparelho incrivelmente poderoso.

Entretanto, quando entrei no mundo dos smartphones e comprei meu primeiro Android, que na época estava na versão 2.3, tive muita dificuldade no início para entender como funciona, quais melhores aplicativos e como realizar determinadas funções, pois naquele momento ainda era escasso bons sites que podessem me fornecer tais informações.

Pensando nisso, entra em cena o AndroidPIT!

(mais…)

2

Você acha que é produtivo no seu trabalho ?

-

No video abaixo tem uma palestra que o Jason Fried confudador da 37signals a empresa que criou o RubyOnRails um Framework que amo de paixão feito em Ruby fez no TED e nela ele mostra como o ambiente de um escritório pode ser tóxico para a produtividade das pessoas.
É uma palestra sensacional, espero que vejam até o final são só 15 minutinhos e uns segundos! E afinal do video que tal deixar deixar um feedback nos cometários dessa postagem sobre ( O que acharam da palestra?), do post em questão ou qualquer outra coisa em relação a postagem.

0

Terminator – Um terminal mais eficiente no Linux

-

Terminator – Um terminal mais eficiente no Linux

Quem trabalha em ambiente Linux com certeza sabe que as vezes precisamos visualizar mais de uma informação ao mesmo tempo e nem sempre ter dois monitores é o suficiente.

Para solucionar esse problema, eis que lhes apresento o Terminator.

O Terminator suporta que você trabalhe com várias abas e ainda permite dividir a aba atual em vários terminais. Você notará um avanço significativo em produtividade ao começar a usá-lo.

(mais…)

3

Ruby uma linguagem de programação que você deveria conhecer!!

-

Um pouquinho de história: Ruby foi criada por Yuhihiro Matsumoto que é conhecido mundialmete por Mats, ele apresenteou a linguagem ao público pela primeira vez em 1995. Ruby é uma linguagem com tipagem forte, dinâmica e orientada a objetos. Ela é totalmente expressiva, o quer dizer que muito fácil de ler e ser entendida; o que facilita em no seu desenvolvimento e manutenção de sistemas criados por ela!

Ruby é interpretada é multiplataforma, isso significar que ela poder ser instalada no Windows, Mac Os, e acredito que quase todas a distribuição Linux e inclusive no Android o sistema operacional para celulares da google.

Então vamos focar na instalação nos pricipais Sitemas Operacionais ( Window, Mac OS , Linux).

(mais…)