Passar algoritmo de cript de .net pra Java

8 respostas
A

Blz?

Tem um sistema aqui na empresa que criptografa com o .net abaixo.
Public Class Security
    Private Declare Function Cipher Lib "CIPHER.DLL" (ByVal Key As String, ByVal Area As String, ByVal Modo As Boolean) As String

    Public Shared Function Criptografar(ByVal sDado As String) As String
        Criptografar = Cipher("Minha chave - 123", sDado, True)
    End Function

    Public Shared Function Descriptografar(ByVal sDado As String) As String
        Descriptografar = Cipher("Minha chave - 123", sDado, False)
    End Function
End Class
Agora eu to fazendo um aqui em java que precisa ser compativel com ele. Usar a a Cipher é até simples: - Reference guide [url]http://java.sun.com/j2se/1.4.2/docs/guide/security/jce/JCERefGuide.html#AppA[/url]. - Um exemplo [url]http://www.rodrigolazoti.com.br/pt/?s=criptografia&x=0&y=0[/url]

Mas manter a compatibilidade é que ta dificil. Tipo criptografar a msm coisa e obter o msm resultado.
Alguém pode me dar alguma idéia pq o cara que fez o codigo .net diz que so usou a DLL (CIPHER.DLL). Ai eu nao sei que Algorithm/Mode/Padding usar para iniciar a Cipher.

Obrigado por quem puder ajudar!

8 Respostas

ViniGodoy

De onde surgiu essa dll? É padrão do Windows? Ou foi sua empresa que implementou?

A

Padrao do win ela nao é. E tbm tenho quase certeza que nao foi implementada aqui na empresa.
Como funciona esse tipo de coisa? Tipo na DLL pode vir algo ja implementado? Pq ele nao especifiou um algorimo.
Se puder dar uma luz agradeço!

ViniGodoy

Sim. Dll é a sigla de “Dinamic Link Library”. É a versão Windows do .jar do Java.

Dentro dessa dll existe uma função chamada Cypher, que é a que você está chamando no seu código VB.

O que você pode fazer, é acessar essa mesma dll no java, através do JNA. Dá uma olhada:
https://jna.dev.java.net/

sergiotaborda

afonsoaaf:
Padrao do win ela nao é. E tbm tenho quase certeza que nao foi implementada aqui na empresa.
Como funciona esse tipo de coisa? Tipo na DLL pode vir algo ja implementado? Pq ele nao especifiou um algorimo.
Se puder dar uma luz agradeço!

Sem o algoritmo não é possivel se compativel nunca. por tentativa e erro vc não vai chegar lá.
Ou vc descobre o algoritmo ou vc tem que usar a mesma dll em java ( via jna ou jni ou qq coisa assim)

A

valeu galera! foi mais ou menos isso que eu falei aqui (tirando essa parte de acessar dll pelo java), mas como eu sou junim… eu nao consegui convencer :]
ja vou mudar meu rumo entao…

Obrigado!

A

galera eu tava pensando nessa questão de usar jna para acessar a dll. Mas é possivel eu usar a jna e buscar a dll no linux? Tipo colocar a dll no path.

Eu tava pesquisando sobre jna, mas nao vi algum caso parecido. A nao ser alguns casos com o wine (onde os usuarios pegavam as dll no windows pra emularem atravez do wine). Mas nao vi uma resposta pro meu problema.

A

galera eu tava pensando nessa questão de usar jna para acessar a dll. Mas é possivel eu usar a jna e buscar a dll no linux? Tipo colocar a dll no path.

Eu tava pesquisando sobre jna, mas nao vi algum caso parecido. A nao ser alguns casos com o wine (onde os usuarios pegavam as dll no windows pra emularem atravez do wine). Mas nao vi uma resposta pro meu problema.

ViniGodoy

O código JNA não será portável. Talvez vc tenha que usar algum artifício para rodar em Linux, como o Wine. Mas nesse caso, não sou a pessoa mais indicada para te orientar.

Criado 29 de dezembro de 2009
Ultima resposta 30 de dez. de 2009
Respostas 8
Participantes 3