Jonas Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 (endret) Hallo Jeg har lyst til å lage en login noe som denne: Private Sub Command1_Click() If Dir("C:\Documents and Settings\JBA\My Documents\VB\Login\" & Text1 & ".txt") = "" Then MsgBox "Brukeren finnes ikke!", , "Trøbbel!" Else Open "C:\Documents and Settings\JBA\My Documents\VB\Login\" & Text1 & ".txt" For Input As #1 Do While Not EOF(1) Text3.Text = Text3.Text & Input(1, #1) Loop Close #1 If Text2.Text = Text3.Text Then Form2.Show Text3.Text = "" Me.Hide Else MsgBox "Feil passord!", , "Trøbbel!" Text3.Text = "" End If End If End Sub Private Sub Form_Load() Text3.Visible = False End Sub Den åpner txt fila som heter brukernavn.txt i mappa mi. Men dette er jo langt ifra sikkert! Man kan jo åpne txt fila og se på passordet! Man kunne vel lagd noe som gjorde at s=a osv, men man kan jo bare rote litt i fila så blir passordet skifta til noe man ikke finner ut uten kildekoden. Hvordan kan jeg lage noe hvor passordet ligger i en passord beskyttet fil og at man kan redigere den etter at hele greie er gjort om til .exe? Husker en gang en fyr som snakka om MS access, men det programmet skjønner jeg ikke mye av.. Noen som har gjort detta før? Edit: rota litt med koden.. skrev dim sum øverst. *borte* Endret 8. januar 2004 av jonas22282460 Lenke til kommentar
aadnk Skrevet 9. januar 2004 Del Skrevet 9. januar 2004 Det enkleste ville være å kryptere passordet med Xor, som dette: Public Function Crypt(ByVal Text As String, ByVal Password As String) As String Dim A&, B&, Buff$ Buff = Space(Len(Text)) For A = 1 To Len(Text) B = B + 1 If B > Len(Password) Then B = 1 Mid(Buff, A, 1) = Chr(Asc(Mid(Text, A, 1)) Xor Asc(Mid(Password, B, 1))) Next Crypt = Buff End Function Du krypterer passordet slik f.eks: Text3.Text = Crypt(Text2.Text, Text1.Text) ' Så lagrer du Text3.Text Og dekrypterer og sjekker slik: ' Først last inn filen til Text3.Text ' Hvis passord er korrekt så ... If Text2.Text = Crypt(Text3.Text, Text1.Text) Then ... Dette er selvsakt ikke særlig godt kryptert, men den skulle holde. Lenke til kommentar
Tassax Skrevet 9. januar 2004 Del Skrevet 9. januar 2004 Har du lyst har du lov har du vett lar du vær. Ikke akkurat en genistrek, men kommer jo an på hvor godt vil designe dette, og hvor sikkert du vil at innloggingen skal være. Skal du bare hindre gamletanta å logge på dagboka di, holder kanskje dette. /*no flame intended*/ Kommer helt an på hva du skal bruke dette programmet ditt til og hva det ev. skal gjøre. Skal du ha databasestøtte så er dette feil ende å starte i. På den anen side: MS Access er jo i utgangspunktet åpen som en låvedør det også da... Lenke til kommentar
Jonas Skrevet 10. januar 2004 Forfatter Del Skrevet 10. januar 2004 (endret) aadnk, det er jo bare å skifte litt i text fila som blir loada og da blir jo alt fucka og jeg finner aldri passordet igjen! Tassax, åpne som en lovedør? går det ikke ann å sette passord på slike filer? har sett en som gjorde det.. Edit: Jeg skal hindre alle! Vil bruke den måten som er sikrest.. Den må hente passordet fra en fil og den fila må være passord beskytta sånn at man ikke bare kan gå inn i den å se passordet. Endret 10. januar 2004 av jonas22282460 Lenke til kommentar
aadnk Skrevet 10. januar 2004 Del Skrevet 10. januar 2004 Du skulle liksom dekryptere teksten når du skulle loade filen tilbake ETTER du hadde kryptert den! Uansett, skal du hindre alle bør du prøve såkalte HASH-er som er intrigert av Microsoft i opperativsystemet. Poenget med de er at det nesten er mattematisk umulig å tilbakestille passordet uten den rette "nøkkelen". Jeg antar Windows og Unix bruker en lignende teknologi, som iallefall hviser at det er ganske sikkert. Download HASH-crypt class-modulen her Den brukes omtrent slik: Dim Crypt As New clsCryptoFilterBox Private Sub Encrypt_Click() Crypt.Password = Password.Text Crypt.InBuffer = Text.Text Crypt.Encrypt Text.Text = Crypt.OutBuffer End Sub Private Sub Decrypt_Click() Crypt.Password = Password.Text Crypt.InBuffer = Text.Text Crypt.Decrypt Text.Text = Crypt.OutBuffer End Sub Private Sub Form_Load() Crypt.Sign End Sub Så kommer problemet, hva skal passordet være for å kryptere passordet?? Det er jo klart at et statisk passord ikke akkuratt tilbyr særlig god kryptering, uansett hvor god algoritmen er. Men det er ikke sikkert at du trenger å la passordet være det som krypteres, men heller noe som programmet kan gjennkjenne som korrekt, dvs at det sjekker passordet for om det er rett. Jeg kjenner ikke til aloritmen som brukes, men jeg har sett programmer gjøre sånt. Kanskje fordi at den eneste måten å tilbakestille teksten på er å prøve alle mulige kombinasjonsmuligheter. Men teksten må vel være enestående, ellers kan flere passord bli valide og sikkerheten minskes. Skal du beskytte f.eks noe mer en passordet (selvfølgelig, selv om eventuelle hackere ikke kan finne ut av passordet kan de da sikkert bare disassemble programmet ditt å finne det brukeren hadde fått) bør du kryptere det og, men vær oppmerksom på at større tekster må krypteres sekvensvis - max antall bokstaver pr. kryptering er vel rundt 128. Kanskje skal du bare glemme å beskytte passordet, men istedenfor kryptere selve det som skal gis til brukeren, og bare leve med det faktum at brukeren ikke får beskjed om passordet er feil. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå