[VB6] Login seguro

WinAce_Boy

Power Member
Alguem sabe como tornar um login seguro?
Uma das maneiras de fazer um login que eu sei(as outras maneiras andam la perto..) é a seguinte:

Private Sub cmdok_Click()

If txtnome = "maria" And txtpassword = "pass" Then
MsgBox "Aceite"
umaformqualquer.Visible = True '/ umaformqualquer.Show
Else: MsgBox "Rejeitado"
End If

End Sub

Se alguém souber de uma forma de tornar mais seguro o código(sem que o exesplorer e outros consiguam fazer das deles..lol), p.f. digam.. ;)

Obrigadão pela atenção
Abraços people :)
 
Boas!

Antes de mais, da forma como tens isso a password é fixa, o utilizador nunca a pode alterar..., portanto se for descoberta..., ele já não pode fazer nada.

A minha sugestão passaria por criares uma variável no regedit de forma a que a pudesses aceder/remover/alterar sem problemas onde poderias guardar a password encriptada.

Vê na net como trabalhares com o regedit, é fácil e até fazes umas coisas engraçadas ;) Mas faz sempre um backup do regedit primeiro, senão ainda te corre mal a brincadeira :P

abraços, HecKel
 
Boas!

Eu não ando com muito tempo livre..., mas fiz uma pesquisa rápida no google e encontrei várias coisas que te podem ajudar.

Recomendo-te vivamente que faças uso dos links que estão na thread em sticky pois não falta lá material sobre visual basic.

http://www.codetoad.com/visual_basic/registry/

Vê este link, acho que por agora ajuda-te ;)

abraços, HecKel
 
Na minha opinião o melhor método para fazeres isso, se o programa utilizar base de dados, e mesmo utilizares uma tabela com esses dados, assim podes adicionar/remover/modificar facilmente os utilizadores, além de que é mais fácil do que se utilizares o registo.

Espero ter ajudado.
 
oi..lol, penso que isso de usar o reg é perigoso e inda por cima o pc n e meu..lol
Se houver uma maneira menos perigosa e practica..
obrigado pela atençao
 
login seguro? ora bem deixame pensar.... faz um login cm base de dados onde a base de dados teja protegida cm user e pass e as passwords tejam encriptadas em md5 nao? :)
 
eu nao axo e so saberes ingles.... mas se fosse a ti começava por estudar o basico... umas calculadores, variaveis globais, funçoes etc....
 
Login Seguro -> usa um SGBD para guardares os dados encriptados (cifras assimétricas ou simétricas conforme os requisitos que tenhas de rapidez, segurança, etc.)

Podes usar SSL para teres https em vez de http nas comunicações entre o browser e o webserver.
 
Pessoal,

Eu aconselho o xtreme vb talk (da minha assinatura). Não gostei muito do ambiente do vbforums.

WinAce_Boy, o que é que pretendes ao certo fazer com esse programa? É que há variadíssimas maneiras de fazer login, assim como de guardar os dados.
Se puderes ser mais explícito, talvez te consiga arranjar uma maneira simples de fazer as coisas.

Já agora, digo-te já uma coisa que te vai perseguir para sempre na programação: é IMPOSSÍVEL esconder totalmente alguma coisa. Se o programa consegue ver o que está por "detrás", então qualquer pessoa, depois de algum estudo, também consegue. Podes é, como disseram acima, hashar a password. Isso basicamente é transformar a password num certo código. É codificá-la, mas sem poderes descodificar depois.
++
Imagina que a pass é 468135. Uma hash (extremamente má) seria somar todos os números. 4+6+8+1+3+5 = 27. Agora, pegando no 27, não consegues voltar a ter o 468135 ;)
O problema desta hash? Bem, daria 468135, 135468, 864135, 134568, 999.... porque a soma destes dá SEMPRE 27.

O objectivo duma hash é, mesmo que uma pessoa tenha acesso à hash, não consegue saber (facilmente) qual é a password que a origina. Os algoritmos de hashing são muito mais complexos do que eu acabei de dizer, e envolvem uma matemática que nem a mim passa pela cabeça. O MD5 é muito famoso. Se enveredares por aqui, ainda vais ouvir falar muito dele ;)

Objectivo do hash
468135 <enter>
o programa gravou na base de dados 27

Mais tarde, se alguém roubar a BD e encontrar o 27, não sabe qual é a password que origina esse número. Pode encontrar várias variantes, mas não sabe qual delas é a original. Isso importa para quê? Ao não descobrir a password original, não consegue descobrir a password que o utilizador eventualmente possa usar noutros sites. Há um exemplo cá no fórum de alguém que usou a mesma password num fórum e no hotmail, e de alguma forma a password do fórum foi comprometida, e o resultado é que tiveram acesso ao hotmail dele.

Isto era só uma pequena introdução ao que é "hash". Para algo mais detalhado, Google :) um bom ponto de partida (espero que percebas bem inglês): http://en.wikipedia.org/wiki/Hash_function

Cumps [[[[[[]]]]]]
angelofwisdom
 
Fixe..Boa apresentação..;) Obrigado.. Vou escolher esse método, parece eficaz e simples, mas o md5 é um programa, função ou outro? E o hash?..

O meu programa vai ser uma aplicação para gerir autores e livros e atribuir relações entre eles..No inicio gostaria de por uma password para não ser qualquer um a chegar lá e fosse vasculhar os ficheiros e visse a password num dos ficheiros .cfg(era como eu estava a pensar fazer..mas penso que seria muito fácil de a descobrir)..
Obrigado pela atenção.. Abraços a todos..
 
O MD5 é um algoritmo. Fazes uma função, arranjas o MD5 na Internet, e aplicas numa string.
Nunca mexi com MD5 mas deve ser algo do género
Hash = MD5("Olá")
e ficas com a Hash da string "Olá".

Quando o utilizador grava uma password, a que fica registada no ficheiro CFG é a HASH da password. Quem abrir esse ficheiro apenas encontra a hash. Não pode utilizá-la sem o utilizador saber (mas pode alterá-la). O programa, por sua vez, quando é inserida uma password, hasha-a e compara-a com a hash gravada. É mais seguro do que compará-la directamente com outra password escrita no ficheiro (porque esta pode ser comprometida).

Estou a explicar as coisas de forma muito linear. Sinceramente, EU nunca trabalhei com algoritmos de hashing. Apenas usava encriptação "normal" (encripta/desencripta). Mas no teu caso talvez devas aprender qualquer coisa sobre criptografia.
 
Back
Topo