Bom dia galera!
Estou precisando de umas dicas. Preciso desenvolver uma ferramente que gere uma serial, e ao entrar com outra serial valide o programa pra ser usado, caso seja errado a serial não validar o programa.
Alguém sabe alguma classe ou pacote de algum grupo que posso usar?
Abraços.
Obrigado! 
primeiro vc deve saber quais dados vai usar para gerar o serial:
ex. : MAC da placa de rede
nome do computador, nome do usuario , empresa, nome do programa…
depois podes usar um MessageDigest de MD5 e criar 32 digitos hexa
para os dados que vc escolheu.
Essa é uma maneira,
existem umas 2987234098123 de fazer isso
o poder é de você!

[quote=dyorgio]primeiro vc deve saber quais dados vai usar para gerar o serial:
ex. : MAC da placa de rede
nome do computador, nome do usuario , empresa, nome do programa…
depois podes usar um MessageDigest de MD5 e criar 32 digitos hexa
para os dados que vc escolheu.
Essa é uma maneira,
existem umas 2987234098123 de fazer isso
o poder é de você!
:D[/quote]
Tem um exemplo do q vc citou acima?
Eu estou pegando o nome da empresa, a partir dai teria que gerar alguma serial. Mas não tenho ideia de como gerar.
MessageDigest.getInstance("MD5").digest("SUA STRING".getBytes())
O código acima retorna um array de bytes de 16 posições…
procure na net um método pronto para converter esses bytes para 32 bytes HEXA
ex: byte 169 - > hexa A9
Abs
eu faço a conversão byte - > hexa assim :
public static final byte[] byteToHexa(byte[] bytes) {
byte[] result = new byte[bytes.length * 2];
for (int i = 0; i < bytes.length; i++) {
result[i * 2] = (byte) ((bytes[i] & 0xF0) >> 4);
result[i * 2] += (result[i * 2] > 9 ? 0x37 : 0x30);
result[(i * 2) + 1] = (byte) (bytes[i] & 0x0F);
result[(i * 2) + 1] += (result[(i * 2) + 1] > 9 ? 0x37 : 0x30);
}
return result;
}
será que alguem se habilita a fazer melhor? 
uma vez entrei numa discussão aqui pra remover acentos,
tomara que essa conversão tenha o mesmo sucesso 
Se você for lançar esse software no mercado, deve saber que essa solução já está ultrapassada. Faça uma validação online.
Não acho que seja ultrapassada, pelo contrário até hj é a forma q eu mais vejo sendo usada.
[quote=dyorgio]eu faço a conversão byte - > hexa assim :
public static final byte[] byteToHexa(byte[] bytes) {
byte[] result = new byte[bytes.length * 2];
for (int i = 0; i < bytes.length; i++) {
result[i * 2] = (byte) ((bytes[i] & 0xF0) >> 4);
result[i * 2] += (result[i * 2] > 9 ? 0x37 : 0x30);
result[(i * 2) + 1] = (byte) (bytes[i] & 0x0F);
result[(i * 2) + 1] += (result[(i * 2) + 1] > 9 ? 0x37 : 0x30);
}
return result;
}
será que alguem se habilita a fazer melhor? 
uma vez entrei numa discussão aqui pra remover acentos,
tomara que essa conversão tenha o mesmo sucesso :D[/quote]
Eu não tenho uma solução melhor, mas tenho umad uvida, por que declarou esse método estatico e final?
Só se ve usando isso em softwares no estilo windows. Mas o certo para várias aplicações é usar validação online.
Veja se a maioria dos seus clientes terá internet, se for, então coloque.
Cara, coloco static e final porque o java permite
assim como coloco public em interfaces tb,
sei que se não colocar o final no caso de métodos static
e public nos métodos de interfaces o compilador fará isso
pra mim, mais tenho esse custume,
e não perco nunca 
haehahehahehaehaeh
Abs,