mazani .txt   otázka

VB.NET

ahoj ,poraďte jak je nejlepší zakodovat heslo.

Vytvořil jsem si databazi a při registraci se vytvoří txt soubor ve kterém je heslo ale na to se muze kdokoli kouknout.

Kdybych se to heslo ještě pomocí vzorců matematicky zmenilo

tak záškodník vytvoří hesel víc a z toho by se dalo zjistit jakým vzorcem je to kodovane a stejnak by se k tomu dostal

(pujde jen o ciselne heslo) nevim jestli by stačilo párkrát převíst do dvojkové soustavy

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Omlouvám se za nadpis _mazani .txt_ to jsem měl ještě jeden dotaz když mám v počítači konkrétní .txt soubor jak ho mužu smazat znam li přesnou adresu dik

nahlásit spamnahlásit spam 0 odpovědětodpovědět

mazani vyřešeno

My.Computer.FileSystem.DeleteFile ("C:\bla.txt")

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jde to udělat i tak , že nadefinujete jmenný prostor.

Imports System.IO

A soubor smažete tímto kódem

   IO.File.Delete("C:\bla.txt")

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

No, pokud ti jde o to aby si uživatel zadal heslo a ono ho to porovnalo s tím pravým a nechceš ho nikde ukládat, tak ho prožeň přes MD5hash.

Z toho se heslo zjistit zpětně nedá. Budeš mít nějakej soubor s tím MD5hashem, uživatel zadá heslo, ty ho proženeš přes tuhle funkci a porovnáš se souborem.

Teď mě napadlo, co kdyby někdo MD5hash změnil... Zkusil bych heslo pomocí nějakých funkcí upravit, zahashovat a uložit. Při kontrole hesla opačná funkce. Nebo použít MD5hash několikrát za sebou (počet by určilo třeba samotný heslo pomocí nějaké funkce).

Asi to není úplně neprůstřelný, ale na takovéto omácí kódování to stačí :D

Jo a ještě, tady máš funkci na hashování řetězce:

Function HashMD5(ByVal S As String) As String
    Dim MD5 As New System.Security.Cryptography.MD5CryptoServiceProvider()
    Dim Hash As Byte(), I As Int16

    Hash = MD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(S))
    S = ""
    For I = 0 To Hash.Length - 1
        S = S & Hex(Hash(I)).PadLeft(2, "0").ToLower()
    Next
    Return S
End Function

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Běžně se pro tohle používá metoda hash + salt. Před nebo za hash hesla se připojí nějaký tajný řetězec, který zná jen autor aplikace a nikdo jiný (říká se tomu salt, neboli sůl). To celé se teprve zahashuje a uloží. Heslo se z toho už nedá vykopat, jedině že by měl útočník opravdu nehorázné štěstí anebo smečku superpočítačů. Pro ověření správnosti zadání hesla se provede stejný postup a porovnají se hashe, jiné heslo dá na 99,999999999999999999999% jiný hash.

Ukládat jen MD5 nebo jiný hash hesla není bezpečné, hashovacích funkcí tolik není a kdokoliv si heslo může změnit a pro MD5 existují i různé slovníky, kde zadáte hash a oni mají v databázi předpočítané původní řetězce, takže se to dá celkem rychle dohledat.

Pokud je se použije hash + sůl, i kdyby někdo ve slovníku dohledal původní řetězec hesla, tak je to jenom sůl s hashem hesla, ale slovníky většinou obsahují jen textové původní řetězce a ještě k tomu krátké, což hash se solí není.

A místo MD5 doporučuji použít třeba SHA512, MD5ce se už dneska moc nevěří.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

A mohl bych prosím požádat o kód ? jestli by vás to nezatěžovalo abyl by jste ochoten.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mno slovníkový útok je celkem rychlý, ale jednoduchá je i obrana - nutit uživatele, ať si nedávají hesla ze slovníku. A pokud máš na mysli rainbow tables, kde jsou předpočítané hodnoty hashů pro krátká hesla. Pro delší to ale nejde z prostorových důvodu, zkus si cvičně spočítat, kolik prostoru by zabralo uložit hashe pro všechny stringy délky 10 obsahující písmena, čísla a obvyklé paznaky.

Na MD5ku byl nalezen postup, jak hledat kolize, což značí něco nahnilého v algoritmu. Sha1 je na tom dneska sice o něco líp ale nej je asi použít zmiňovanou sha512 se solí. Jako sůl ale není dobré používat pořád stejný řetězec, neboť pak 2 hesla budou mít stejný hash. V praxi se spíš používá jako sůl login nebo nějaký náhodný string, který je uložený vedle. A samozřejmě každé zabezpečení je naprd, když uživatelé nejsou nuceni si dávat dostatečně složitá (a neslovníková) hesla. Definice "složitosti hesla" je pak podle toho, jak moc sensitivní informace jsou uchovávány.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

myslím že kombinací jak přidat sůl je "nekonečno". Může do hesla přidávat znaky z hashe (v závislosti např. na délce hesla, součtu apod.), nějaký text, login, rotovat, přesunovat, posunovat, nahrazovat znaky v hesle, loginu, hashi apod.

Pokud bude mít výsledný "meziheslo" třeba 100 znaků a uložíš z ně hash, pochybuju že na "meziheslo" někdo příjde, natož na heslo.

Ale řek bych že každá ochrana je průstřelná. Ale pokud nevytvoříš program v řádech statisíců Kč (neb hru za dvě kila) tak se tím nebude nikdo zabejvat :D

nahlásit spamnahlásit spam 0 odpovědětodpovědět

akouaim herniho klienta na registraci v pocitaci

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback