[RESOLVIDO]Chave/Serial de aplicações java

Boa Tarde,

Estou em faze final de desenvolvimento de uma aplicação java, e nessa etapa a empresa deseja que seja criado níveis do software.
Ou seja, sera vendido o software com diferentes funcionalidades, com níveis. Ex: nível 1 tem tais funcionalidades, nível 2 tem as mesmas mais essas… e assim por diante.

Para isso preciso gerar uma especie de serial de ativação dessa aplicação. Esse serial também não pode ser usado mais de uma vez.
Contudo imaginei que deveria fazer algo como, ter uma chave publica para cada cliente, que seria distribuída junto a imagem do software. E para essa chave publica existiria em posse da empresa chaves privadas, que determinariam o nível de funcionalidades liberadas.

Entretanto não consegui criar essas chaves, pois a criptografia que usei resultou em um “serial” inviável para ser distribuído. No caso as classes java usadas foram Security (public and private key) e Crypto (Cipher).

Alguém teria algum outro método de criptografia que gerasse um código semelhante a um serial? ou algum dica de como proceder para resolver este caso?

Obrigado,
Matias Schimuneck

tenta usar a classe java.security.MessageDigest provavelmente seve ser assim que voce deve tar gerando !
se nao fica a dica:

http://codare.net/2007/02/02/java-gerando-codigos-hash-md5-sha/

gera um md5 de uma frase ou codigo gerado por vc…

ai tem que fazer via programação você tem uma tabela com as chave md5 e uma outra associada a ela as permissões…

eu prefiro mandar pro cliente um arquivo jar com uma classe contendo dentro data de validação do software ou seja o periodo de uso e tb constantes para as liberações dentro dessa classe
contem cnpj do cliente e outras informações únicas do contrato.

compilo essa classe e gero um md5 dessa classe arquivo e distribuo com o programa e dentro do programa eu faço uma referencia a essa classe e comparo o md5 dela… se nao bater ou algum engraçadino gerar outra classe… o programa não abre. bom eu faço assim tem inúmeras formas… não sei se é isso que você quer?

flw.

É isso ai mesmo, só não tinha pensado em usar um .jar.
Minha ideia era algo mais simples como um serial, vou dar uma olhada nesse MD5 pra ver qq posso fazer com ele. Mas pelo que olhei ele vai me servir.

Obrigado

Só estou com uma duvida, como faço pra recuperar o código criptografado? ou seja fazer engenharia reversa? do MD5?

na verdade nao dá…

de uma olhada aki… http://pt.wikipedia.org/wiki/MD5
tudo bem e a wiki mas vai te dar uma noção melhor de como usar ele…

md5 não pode ser transformada novamente no texto que lhe deu origem. O método de verificação é, então, feito pela comparação das duas hash (uma da mensagem original confiável e outra da mensagem recebida). O MD5 também é muito usado para verificar a integridade de um arquivo…

a ideia que te falei da classe…vcom as chaves que dao a permissão…

voce vai criar a tal classe que te falei com o propositode ser um arquivo de libração de versão e modulos… gera o md5 dessa classe ou jar… envia pro cliente esse arquivo com a chave md5 que vc gerou unica e o codigo de licença para esta versao do cliente… to as Keys dos cds de instalação do windows etc so que sem ser no formato 00000-00000-00000-00000 a sua vai ser o resultado da geracao do md5 com esse resultado uma “string” pode ser…

voce no seu softwra coloque uma opçao para pedir o arquivo de destravamento e essa chave… grave e no sistema referencie sua bliblioteca classe assinada e compare o rash gerando novamente com o arquivo informado pelo usuarioe com a string que foi informado pelo usuario como resultado a"string" do md5… enviado por você…

ai o ceu e o limite isso e uma forma, faço assim e ficou legal…

Verdade, depois que perguntei continuei pesquisando sobre o MD5 e vi que não dava pra decodificar.

Acho que é uma boa fazer a comparação criptografada, como você falou. Não sei se entendi muito bem o modo que você utilizada, mas bolei um na minha cabeça que acho que vai funcionar.

Vou utilizar o CNPJ do cliente mais um código para fazer isso.

Obrigado pela atenção e ajuda.
Realmente foram muito uteis.

Abraço,
Matias Schimuneck