Estou precisando criptografar, enviar para o MySQL e depois descriptografar.
Não é criptografia de senha, mas de dados do tipo numérico.
Exemplo: Salário ou cartão de crédito.
Depois necessito gravar no MySQL no formato numérico.
Como faço isto?
Você vai manipular esse dado de alguma maneira no banco?
Não pode armazenar de maneira criptografada como Varchar e depois converter para um double quando decriptografar novamente na classe?
Por favor, descondere esta outra mensagem. Foi em duplicidade.
L
liesse
yorgan:
Você vai manipular esse dado de alguma maneira no banco?
Não pode armazenar de maneira criptografada como Varchar e depois converter para um double quando decriptografar novamente na classe?
Abraço
Não vou manipular este dado na banco, mas tenho algumas restrições para criação de colunas.
Neste caso estaria aproveitando o próprio campo já definido como numérico para este fim.
Não vou manipular os dados no banco de dados mas tenho uma restrição de criar colunas.
Neste caso gostaria de estar aproveitando o mesmo campo atual para guardar a informação criptografada.
A
arlindojr
(( não querendo ser chato, mas já sendo, isso também não a ajudara a resolver seu problema…
mas o certo não seria CIFRAR & DECIFRAR ))…
L
liesse
Pelo que verifiquei neste site está sendo utilizado com o hibernate.
Gostaria de uma solução sem este recurso.
Obs: Desculpe as duplicidades, mas está 10 a 0 para o site do forum. Talvez problema de BIOS
L
liesse
Não conheço o conceito de cifrar e decifrar.
Existe algo para converter numéricos?
O
oyama
1o.) O Jasypt não é só para usar com Hibernate: http://www.jasypt.org/encrypting-numbers.html
2o.) A criptografia tem que ser “forte”? Se a questão de segurança é para que alguém que faça um select no banco não consiga saber o valor do campo, sugiro aplicar um algoritmo bem simples: XOR do número com um máscara fixa http://www.sap-img.com/java/java-bitwise-logical-operators.htm.
3o.) Se for para utilizar algum algoritmo “forte” de criptografia, precisa ser um algoritmo simétrico http://en.wikipedia.org/wiki/Symmetric_key_algorithm. Como você quer usar números como entrada e saída, é preciso saber o tamanho do campo e o os valores máximos e mínimos que você vai aceitar para determinar qual o algoritmo ideal. Tem que estudar JCE.
Y
Yky_Mattshawn
Se for pra bloquear a liberação do valor do campo para determinados usuários, você pode utilizar o MySQL Proxy que interceptaria os SELECT’s e, caso o usuário requisitante não tivesse permissão, apagaria o valor do campo para aquele ResultSet.
L
liesse
O problema é que o sistema estará sendo instalado em um host para hospedagem, ou seja, não sei quem tem acesso ao o que.
Neste caso a criptografia é a melhor situação.
Ainda estou analisando a opção que o oyama deu.
A
arlindojr
Sobre a Criptografia:
( eu diria ), se tu quer criptografia “forte” mesmo, usa criptografia Assimétrica ( baseada em chave pública e privada ( chaves distintas para cifrar e decifrar ))…
Criptografia Simétrica usa chave secreta ( uma única chave para cifrar e decifrar )…
Porém, o custo computacional da criptografia Assimétrica é superior ao da criptografia Simétrica.
Porém ( novamente ) com a criptografia Assimétrica vai ser difícil ( perto do impossível ) de alguem ( além do detentor da chave “privada” ) ter acesso a informação…
L
liesse
Referente a criptografia tem um ponto que é importante que você mencionou.
O custo computacional.
Considere a seguinte situação, um relatório sendo gerado pelo JasperReport em formato PDF com 20.000 linhas e cada linha possuir pelo menos 2 campos de informação para decriptografar.
Neste caso é disparado 40.000 vezes o processo de descriptografar, o que pode ser muito custoso para o servidor.
Analisando por este angulo, talvez a alternativa do XOR se aplique bem, pois o importante é embaralhar os dados não ter uma segurança forte.
O que acha?
A
arlindojr
concordo, plenamente…
como mencionei, criptografia Assimétrica é cara computacionalmente…
Acredito que para fazer isso que você mencionou ( com criptografia Assimétrica ) deveriá-se ter um servidor “razoávelmente bom”…
Para seu caso, acho que criptografia Simétrica se aplica ( já que a questão não é única e exclusivamente a segurança, e sim, somente “dificultar” o acesso… )…
““Eu sómente quis expor o que “EU” entendo por criptografia “forte”…””…
e BOA SORTE…
L
liesse
Arlindo, obrigado pela ajuda.
Não tenho um bom conhecimento de conceitos, mas muita vontade de fazer.
Agradeço muito a ajuda e ainda estou digerindo este monte de informação.
Mas já deu um bom caminho das pedras.
O ponto principal é saber qual os resultados vamos obter lá na frente.
Neste caso já ajudou a ver onde haveria problemas e evitou ter um bom retrabalho.
Especialmente porque só perceberia estas coisas em produção.