Estou com o seguinte problema, estou construindo um serviço em java, que chamara um Web Service em .NET, e preciso passar como parâmetros para o .NET uma senha criptografada, no entando quando utilizo algoritmos de criptografia 3DES existentes na internet, nenhum está encriptando do mesmo modo que o framework padrão do .NET encripta, desse modo o resultado do WS .NET é que a senha esta incorreta.
Algum de vocês saberiam um algoritmo que eu coloque a mesma chave e IV que utilizei no .NET e ele retorna a encriptação correta? Já tiveram esse problema e sabem a solução?
Sua pergunta é bem difícil de responder sem conhecer os detalhes técnicos da implementação .NET. A criptografia Triple DES em si é padronizada, o que muitos implementadores fazem é incluir algumas especificidades. Por exemplo, a forma de “salgar” a cifra, ou como preencher os blocos de dados que não conseguem ocupar os segmentos de tamanho fixo (512 bytes, por exemplo). Talvez o link abaixo lhe ajude com a implementação de Triple DES em Java?
O problema que tenho é que não conheço o código .NET, é um sistema pronto, feito por uma outra equipe que não é a minha na empresa, e o único dado que eles me disponibilizaram é a chave que eles utilizaram para codificação e o IV. O artigo que você postou já o conheço o problema é que o mesmo gera uma chave própia e guarda num arquivo, e no meu caso eu tenho já essa chaves de criptografia em String.
Boa tarde a todos, desculpem ressucitar o topico, mas ja revirei todo o forum e boa parte do google, mas nunca trabalhei com criptografia, e logo de cara peguei uma missao de gerar uma api utilitaria para criptografar senhas e decriptografar simulando 3DES.
É o seguinte, esta simulacao consiste em criptografar um texto x de 16bytes, com uma chave de 32 bytes, no primeiro passo eu devo criptografar este texto transformado em 8bytes usando a primeira parte da chave de 32 tambem em 8 bytes, usando DES, ate ai tudo bem, funcionou perfeitamente, porem no segundo passo eu devo decifrar este texto com a segunda parte da chave transformada num array de 8bytes, e ae que esta o problema, eu nao consigo decifrar este texto se eu usar uma chave diferente(no caso a segunda parte da chave de 32), nao sei se me fiz entender, mas se alguem puder ajudar…
Obs:. Nao sou tao leigo em Java, possuo certificacao e tal, mas nunca fiz nada de criptografia.