Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

gastao

senha - contrasenha

Mensagens Recomendadas

gastao

como e q consigo que faça um tipo de senha como a chave do Windows por exemplo e uma contrassenha que corresponda a essa senha, vou usar esse método para validar os meus programas...

alguém consegue dar uma ajuda?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gastao

não, imagina eu tenho um nif um id e o numero de serie do disco.

eu csg juntar isso tudo num textbox por exemplo e encryptar mas queria algo do genero de me dar uma password com esses mesmos dados do genero;

XXXXX-XXXX-XXXXX-XXXXX-XXXXX - Senha

XXXXX-XXXX-XXXXX-XXXXX-XXXXX - Contrasenha

e que esses dados não fossem aleatórios, isto e do genero para licenciar software remotamente...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

alguém me csg dar uma ajuda?

Se tiveres o cuidado de escrever português correcto, em particular com pontuação, é mais provável obteres ajuda.


Antes de mais, convém teres em conta que não tens uma forma infalível para resolver o problema (seja através de reverse engineering do programa, editando o programa, ou de outro método qualquer).

Uma forma comum de resolver o problema, é obtendo um hash do id da máquina/utilizador. No teu programa, só tens de verificar se o hash para aquele id é o fornecido pelo utilizador.

Um método um pouco mais elaborado, passa por usares criptografia assimétrica. Tens um par chave pública/privada. A chave privada fica contigo, e usas-la para cifra o id da máquina/utilizador, e gerar a key que disponibilizas ao utilizador. Na tua aplicação, usas a chave pública para decifrar a key, e verificar se tem o valor do id da máquina/utilizador.

Ou seja, geras uma par chave privada/pública (privKey,pubKey).

privKey fica contigo, para gerares chaves para o programa.

pubKey vai com o programa, para validares as chaves do programa que geras.

Um utilizador compra o programa, e quer uma chave para desbloquear o programa.

- Ele dá-te um id de máquina/utilizador (progId).

- Tu cifras esse progId com a chave privada, gerando a chave para desbloquear o programa (progKey).

- A aplicação usa a chave pública para decifra a progKey, e verifica se a mesma é igual a progId.

var privKey, pubKey, progId, progKey

// Gerar chave
var progKey = rsa_encrypt(progId, privKey)

// Verificar chave
var progId = rsa_decrypt(progKey, pubKey)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gastao

boas Carlos,

percebes te o que eu quero realmente, eu tenho dois elementos para gerar essas chaves, nif e o n/s do disco onde a aplicação vai ficar instalada, eu apenas preciso de saber como é que eu posso gerar as minhas chaves...

depois a contrachave vou me ligar ao meu servidor, e se ela coincidir ele deixa aceder ao programa e usar o programa... pois o programa so vai funcionar se autenticar 1 no meu servidor.

Editado por gastao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

Já falaste aí em chaves, contrachave, nif e o n/s do disco, o que já me começa a parecer confusão a mais...

O teu objectivo continua a não estar claro. Acho que era melhor começares por descrever o problema que queres resolver, sem falar na solução (i.e., sem falar nas chaves e contrachaves).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gastao

Carlos a ver se me percebes

é simples eu tenho um NIF e um numero de serie do disco rígido dessas duas coisas quero chegar duas chaves.

Umas que me vai servir de Senha.

Outra vai me servir de Contrassenha.

E queria que o formato fosse tipo exemplo : XXXXX-XXXX-XXXXX-XXXXX-XXXXX Alfanumérico

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gastao

eu desta forma csg gerar serials aleatórios queria era achar uma forma de encaixar as minhas variaveis

Public Function GetSerialNumber() As String
	Dim serialGuid As Guid = Guid.NewGuid()
	Dim uniqueSerial As String = serialGuid.ToString("N")
	'Dim uniqueserial As String = Label6.Text
	Dim uniqueSerialLength As String = uniqueSerial.Substring(0, 28).ToUpper()
	Dim serialArray As Char() = uniqueSerialLength.ToCharArray()
	Dim finalSerialNumber As String = ""

	Dim j As Integer = 0
	For i As Integer = 0 To 27
		For j = i To 4 + (i - 1)
			finalSerialNumber += serialArray(j)
		Next
		If j = 28 Then
			Exit For
		Else
			i = (j) - 1
			finalSerialNumber += "-"
		End If
	Next
	Return finalSerialNumber
End Function

Editado por gastao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.