O DESENVOLVIMENTO DE SOFTWARE SEGURO
Por: adrieljunio2008 • 5/5/2015 • Ensaio • 642 Palavras (3 Páginas) • 220 Visualizações
[pic 1]
FACULDADE ANHANGUERA DE BELO HORIZONTE
Adriel Júnio Avelar
Jonatas Barbosa
Josimar Aparecido
Vinícius Eça
Wemerson Alves
DESENVOLVIMENTO DE SOFTWARE SEGURO
Etapas 2 e 3
Belo Horizonte,
30 de abril de 2014
- ETAPA 1
Ler atentamente os capítulos do livro-texto ou complementar sobre Criptografia, principalmente, sobre os diversos métodos de criptografia e sua utilização.
- PASSO 3
Pesquisar como utilizar os métodos de criptografia utilizados no Passo 2, nas linguagens Java e ASP (Active Server Pages). Observar que nessa pesquisa teremos três métodos de criptografia (base64 e outros dois métodos resultado da pesquisa anterior).
- Utilizando Criptografia
MD5
O método mais utilizado em PHP é o md5, que é um algoritmo hash de 128 bits. É um método que gera uma string de 32 caracteres, tornando-a mais forte. Esse método é utilizado quando existem dados que não podem ser acessados por outras pessoas. O único problema do md5 é que, se houver descuido por parte do desenvolvedor, pode-se gerar dois md5 iguais, duas strings diferentes, que cabem no mesmo md5. É raro de acontecer, mas acontece.
1 | $string = 'O rato roeu a roupa do rei de Roma'; |
2 | $codificada = md5($string); |
3 | echo "Resultado da codificação usando md5: " . $codificada; |
4 | // 54cf74d1acdb4037ab956c269b63c8ac |
SHA1
O sha1 é parecido com o md5, porém o algoritmo tem 160 bits, gerando uma chave de 40 caracteres. Como contém 160 bits, é muito mais raro ter duas strings codificadas que contém as mesmas informações.
1 | $string = 'O rato reu a ropa do rei de Roma'; |
2 | $codificada = sha1($string); |
3 | echo "Resultado da codificação usando sha1: " . $codificada; |
4 | // b186b709f7cf5a1d98d413379a66e511df8d59a4 |
Metodo de criptografia no Java
String texto = "teste 3";
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(texto.getBytes());
byte[] bytes = md.digest();
StringBuilder s = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
int parteAlta = ((bytes[i] >> 4) & 0xf) << 4;
int parteBaixa = bytes[i] & 0xf;
if (parteAlta == 0) {
s.append(Integer.toHexString(parteAlta | parteBaixa));
System.out.println("M1: " + s2);
//Saida: "M1: bf99afd7f589db5b524cb34f316277b1"
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;
public class EncriptaSenha {
public static String encripta (String senha) {
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(senha.getBytes());
BASE64Encoder encoder = new BASE64Encoder ();
return encoder.encode (digest.digest ());
} catch (NoSuchAlgorithmException ns) {
ns.printStackTrace ();
String s = "senha aqui";
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update( s.getBytes() );
byte[] hash = md.digest();
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < hash.length; i++) {
if ((0xff & hash[i]) < 0x10)
hexString.append( "0" + Integer.toHexString((0xFF & hash[i])));
hexString.append(Integer.toHexString(0xFF & hash[i]));
String criptografado = hexString.toString();
Método de criptografia em ASP.NET
public string GerarMD5(string valor)
// criptografia MD5
MD5 md5Hasher = MD5.Create();
// Criptografa o valor passado
byte[] valorCriptografado = d5Hasher.ComputeHash(Encoding.Default.GetBytes(valor));
// Cria um StringBuilder para passarmos os bytes gerados para ele
StringBuilder strBuilder = new StringBuilder();
// Converte cada byte em um valor hexadecimal e adiciona ao
// and format each one as a hexadecimal string.
for (int i = 0; i < valorCriptografado.Length; i++)
strBuilder.Append(valorCriptografado[i].ToString("x2"));
// retorna o valor criptografado como string
return strBuilder.ToString();
using System.Security.Cryptography;
public class Criptografia
private static byte[] chave = { };
private static byte[] iv = { 12, 34, 56, 78, 90, 102, 114, 126 };
public Criptografia()
public static string Criptografar(string valor, string chaveCriptografia)
DESCryptoServiceProvider des;
MemoryStream ms;
CryptoStream cs; byte[] input;
des = new DESCryptoServiceProvider();
ms = new MemoryStream();
input = Encoding.UTF8.GetBytes(valor);chave
=Encoding.UTF8.GetBytes(chaveCriptografia.Substring(0, 8));
cs = new CryptoStream(ms, des.CreateEncryptor(chave,
iv), CryptoStreamMode.Write);
cs.Write(input, 0, input.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
catch (Exception ex)
...