Criptografia Rijndael de C# para JAVA

3 respostas
E

Fala galera,
primeiro, gostaria de agradecer aos amigos do ultimo fórum que ajudaram. Esclarecendo algumas dúvidas. Graças a eles consegui desenvolver um trecho funcional do código…mas o que eu preciso agora é passar uma criptografia Rijndael C# para java. Eu to aqui caçando, estudando e talz. Mas infelizmente não consegui desenvolver nada. Alguém pode me ajudar nessa ?? … Segue o código C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace Seguranca
{
    static class ClSeguranca
    {
        static string CONST_CHAVE = "Chave_Exemplo";
        
        public static string Criptografar(string dados)
        {
            string chave = CONST_CHAVE;
            byte[] b = Encoding.UTF8.GetBytes(dados);
            byte[] pw = Encoding.UTF8.GetBytes(chave);

            RijndaelManaged rm = new RijndaelManaged();
            PasswordDeriveBytes pdb = new PasswordDeriveBytes(chave, new MD5CryptoServiceProvider().ComputeHash(pw));
            rm.Key = pdb.GetBytes(32);
            rm.IV = pdb.GetBytes(16);
            rm.BlockSize = 128;
            rm.Padding = PaddingMode.PKCS7;

            MemoryStream ms = new MemoryStream();

            CryptoStream cryptStream = new CryptoStream(ms, rm.CreateEncryptor(rm.Key, rm.IV), CryptoStreamMode.Write);
            cryptStream.Write(b, 0, b.Length);
            cryptStream.FlushFinalBlock();


            return System.Convert.ToBase64String(ms.ToArray()); 

        }

        public static string Descriptografar(string  sDados)
        {
            string chave = CONST_CHAVE;
            byte[] dados = System.Convert.FromBase64String(sDados);
            byte[] pw = Encoding.UTF8.GetBytes(chave);

            RijndaelManaged rm = new RijndaelManaged();
            PasswordDeriveBytes pdb = new PasswordDeriveBytes(chave, new MD5CryptoServiceProvider().ComputeHash(pw));
            rm.Key = pdb.GetBytes(32);
            rm.IV = pdb.GetBytes(16);
            rm.BlockSize = 128;
            rm.Padding = PaddingMode.PKCS7;

            MemoryStream ms = new MemoryStream(dados, 0, dados.Length);

            CryptoStream cryptStream = new CryptoStream(ms, rm.CreateDecryptor(rm.Key, rm.IV), CryptoStreamMode.Read);
            StreamReader sr = new StreamReader(cryptStream);

            return sr.ReadToEnd();
        
        }
    }
}

3 Respostas

D

Veja se isso te ajuda:

www.bouncycastle.org/

[]s

E

Opa, valeu por responder !! =))
po cara, eu já vi sobre esse bouncy castle ai, só que eu não consegui entender como implementá-lo.
é a primeira vez que eu tenho que fazer uma criptografia… =((

tens algum exemplo ??

D

Aqui só trabalho com criptografia assimétrica… não tenho um exemplo fácil com simétrica pra te mandar…
Mas da uma olhada neste link abaixo, pq ele tem diversos exemplos de como usar a API, utilizando simétrica e assimétrica:

http://www.mobilefish.com/developer/bouncycastle/bouncycastle.html

[]s

Criado 2 de setembro de 2009
Ultima resposta 3 de set. de 2009
Respostas 3
Participantes 2