Password hashing og salt
|
|
- Ingrid Steffensen
- 5 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk Password hashing og salt Denne artikel beskriver hvorfor hashing og salt er godt, når man skal gemme passwords. Den forudsætter et vist kendskab til programmering og matematik generelt. Skrevet den 24. jan 2013 af arne_v I kategorien Programmering / Generelt Historie: V1.0-26/12/ original V1.1-29/12/ ret stavefejl etc. V1.2-23/01/ rette flere stacefejl etc. Indledning Det er efterhånden almindeligt kendt at at det er bedre at gemme hashed passwords fremfor passwords i en bruger database og at det er godt at bruge salt i hashing. Denne artikel vil forklare hvorfor og give detaljer omkring hvordan det bør gøres. Formål Hvilke trusler beskytter vi imod ved brug af hashing og salt? At nogen forsøger at logge ind ved at gætte password? Nej! Hashing gør ingen forskel overhovedet. At web site stjæler password og bruger det til at logge ind på andre web sites hvor samme person har brugt samme password? Nej! Koden kan al gemme det ikke hashede password et andet sted. At hackere får adgang til databasen, finder password og bruger det til at logge ind på samme site? Nej! Med adgang til databasen er der ikke noget behov for at logge ind. At hackere får adgang til databasen, finder password og bruger det til at logge ind på andre web site hvor samme person har brugt samme password? Ja! At hackere får adgang til et dump/extract med brugernavne+passwords og bruger det til at logge ind på samme site? Ja! (det sidste lyder umiddelbart usandsynligt, men det sker altså igen og igen ude i virkeligheden) Eksempler Jeg vil regne lidt på forskellige scenarier. Jeg vil bruge følgende notation:
2 KWPW = kendt ord som password RPW(n,[]) = tilfældigt password med længde n og de angivne valide tegn F1 = finde en bestemt bruger FS = finde en tilfældig bruger FA = finde alle m = antal brugere på web site Hvis der skal beregnes hashes vil jeg antage at der kan beregnes en milliard per sekund (hvilket vist i skrivende stund er hvad en highend GPU kan klare med SHA-256). Hvis der skal laves tabel opslag enten i lokal database eller via web service kald vil jeg antage 100 opslag per sekund (lyder lavt men remote access og/eller rainbow transformeringer tager altså lidt ). Og lad os antage at der er 1 million kendte ord (hvilket nok passer fint for dansk og engelsk lagt sammen med ord over en vis længde). Hashing og salt - definitioner En hash funktion som man bruger til hashing af passwords er en funktion som konverterer en streng af vilkårlig længde til em værdi med fast længde (X bits eller Y bytes). hashed password = hash funktion ( password ) Kendte hash funktioner er: * MD5 * SHA-1 * SHA-256 En god hash funktion har egenskaberne: * det er meget nemt at beregne hash udfra input * det er meget vanskeligt at beregne input udfra hash Det er den sidste egenskab som gør det velegnet til at gemme passwords med. Nogen gange kaldes hashing også for en en-vejs kryptering p.g.a. denne egenskab. Et salt er en værdi som konkataneres med input førend hash funktionen kaldes. hashed med salt password = hash funktion ( salt concat password ) Hashing og salt - bruger databaser Implementering af hashed med salt passwords i bruger databaser er simpel. Ved oprettelse af bruger: * genererer tilfældigt salt * beregn hash af salt og password * gem salt og hash i hvert sit felt i bruger databasen
3 Ved login: * hent salt og hash fra databasen * beregn hash af salt fra databasen og det angivne password * sammenlign det beregnede hash med hash fra database * ens => login OK, forskellig => login fejl Hashing og salt - krølle Da output fra hash funktionen har en fast længde og input kan have i princippet en uendelig stor længde, så følger der at der et et uendeligt antal input med samme hash. Passwords kan ikke være uendeligt lange, men der er stadigvæk mulighed for flere passwords med samme hash. Så i princippet kan man logge ind med flere forskellige passwords. Men sandsynligheden for at ramme rigtigt er meget lille. SHA-256 bruger 256 bit hash values, så chancen for at et tilfældigt valgt password virker mod en bruger database hvor der er brugt SHA-256 er 1 ud af 2^256 eller 1 ud af 1.16*10^77. Det er så lille en sandsynlighed at ingen har problemer med det. Hashing og salt - hvorfor Lad os først forklare de basale mekanismer: hashing : beskytter mod at password læses direkte salt : beskytter mod tabel opslag af nemme passwords forskellig salt for hver bruger: vanskeliggør brute force til at finde nogle eller alle passwords Tabel opslag består i at slå password op via hash i en stor database som indeholder passwords og tilhørende hashes. Der findes tabeller med kendte ord og korte tilfældige passwords for de gængse hash algoritmer. Og bemærk at kloge hoveder har fundet måder at gemme sådanne tabeller uden at gemme alle rækker. Sådanne tabeller er også kendt som rainbow tables. Brute force består i at generere alle mulige passwords (med en given længde) og hashe dem og se om hash matcher. Hashing og salt - lidt beregning Ovenstående kan illustreres ved at beregne gennemsnitlig for at finde password i forskellige scenarier. Der antages at m er 10000, n er 10 og [] er [A-Za-z0-9] (alternativt n er 8 og [] er [A-Z0-9]). Password gemt plain text:
4 metode F1 KWPW aflæs 1 <1 sekund FS KWPW aflæs 1 <1 sekund FA KWPW aflæs m <1 sekund F1 RPW(n,[]) aflæs 1 <1 sekund FS RPW(n,[]) aflæs 1 <1 sekund FA RPW(n,[]) aflæs m <1 sekund F1 alt RPW(n,[]) aflæs 1 <1 sekund FS alt RPW(n,[]) aflæs 1 <1 sekund FA alt RPW(n,[]) aflæs m <1 sekund Ingen kommentarer er nødvendige. Password gemt hashed uden salt: metode F1 KWPW slå op 1 <1 sekund FS KWPW slå op 1 <1 sekund FA KWPW slå op m 1 minut 40 sekunder F1 RPW(n,[]) sizeof([])^n/2 hashes 13.3 år FS RPW(n,[]) sizeof([])^n/2/m hashes 11.6 timer FA RPW(n,[]) m*sizeof([])^n/4 hashes 66.5 tusind år F1 alt RPW(n,[]) slå op 1 <1 sekund FS alt RPW(n,[]) slå op 1 <1 sekund FA alt RPW(n,[]) slå op m 1 minut 40 sekunder Opsummering: * kendte ord passwords er meget sårbare * korte tilfældige passwords er meget sårbare * lange tilfældige passwords er delvist sårbare Password gemt hashed med salt - samme salt for alle brugere: metode F1 KWPW /2 hashes <1 sekund FS KWPW /2/m hashes <1 sekund FA KWPW m* /4 hashes 2.5 sekunder F1 RPW(n,[]) sizeof([])^n/2 hashes 13.3 år FS RPW(n,[]) sizeof([])^n/2/m hashes 11.6 timer FA RPW(n,[]) m*sizeof([])^n/4 hashes 66.5 tusind år F1 alt RPW(n,[]) sizeof([])^n/2 hashes 23.5 minutter FS alt RPW(n,[]) sizeof([])^n/2/m hashes <1 sekund FA alt RPW(n,[]) m*sizeof([])^n/4 hashes 81.6 dage Opsummering: * kendte ord passwords er meget sårbare * korte tilfældige passwords er sårbare * lange tilfældige passwords er delvist sårbare
5 Password gemt hashed med salt - forskellig salt for hver brugere: metode F1 KWPW /2 hashes <1 sekund FS KWPW /2 hashes <1 sekund FA KWPW m* /2 hashes 5 sekunder F1 RPW(n,[]) sizeof([])^n/2 hashes 13.3 år FS RPW(n,[]) sizeof([])^n/2 hashes 13.3 år FA RPW(n,[]) m*sizeof([])^n hashes 133 tusind år F1 alt RPW(n,[]) sizeof([])^n/2 hashes 23.5 minutter FS alt RPW(n,[]) sizeof([])^n/2 hashes 23.5 minutter FA alt RPW(n,[]) m*sizeof([])^n hashes 163 dage Opsummering: * kendte ord passwords er meget sårbare * korte tilfældige passwords er sårbare * lange tilfældige passwords er ikke sårbare Effekt af at forbyde kendte ord Hashing uden eller med salt kan ikke beskytte kendte ord passwords. De bør derfor forbydes. Det kan gøres ved hjælp af en af: * opslag i ordbog * regel om et mix af store bogstaver, små bogstaver, tal og special tegn * kun tillade genererede passwords Den midterste løsning er mest praktisk. Effekt af større password længde Lad os sammenligne F1 og FA for forskellige password længder stadig med m= F1 RPW(8,[A-Za-z0-9]) FA RPW(8,[A-Za-z0-9]) F1 RPW(10,[A-Za-z0-9]) FA RPW(10,[A-Za-z0-9]) F1 RPW(12,[A-Za-z0-9]) FA RPW(12,[A-Za-z0-9]) 30.3 timer 34.6 år 13.3 år 133 tusind år 51.1 tusind år 511 millioner år Password bør mindst være 10 tegn lange - gerne længere. Effekt af flere valide tegn Lad os sammenligne F1 og FA for forskellige set af valide password tegn stadig med m=10000.
6 F1 RPW(10,[A-Z0-9]) FA RPW(10,[A-Z0-9]) F1 RPW(10,[A-Za-z0-9]) FA RPW(10,[A-Za-z0-9]) F1 RPW(10,[A-Za-z0-9ÆØÅæøå+-_,.?!$%#]) FA RPW(10,[A-Za-z0-9ÆØÅæøå+-_,.?!$%#]) 21.2 dage 580 år 13.3 år 133 tusind år 132 år 1.32 millioner år Giver ikke helt så store forbedringer som længere passwords, men giver dog noget. Effekt af gentage hashing Kloger hoveder har bemærket at hurtige hash funktioner ikke er en fordel i denne sammenhæng. En måde at lave en hash funktion langsommere på er at hashe flere gang. 5 gange: output = hash ( hash ( hash ( hash ( hash ( input ) ) ) ) ) Lad os sammenligne F1 og FA for m=10000 n=10 og [A-Za-z0-9]. gentagelser F år FA tusind år F år FA millioner år F tusind år FA millioner år F tusind år FA millioner år Bemærk at gentagelse af hashing ikke er gratis, da det også øger CPU forbruget ved helt normal login, så man skal finde et kompromis. Flere computere Hvis det er meget interessant at finde et password kan der blive sat flere computere på opgaven med at brute force. /1 PC /100 PCere /10000 PCere F1 RPW(8,62) 1 rep 30.3 timer 18.2 minutter 10.9 sekunder F1 RPW(10,36) 1 rep 21.2 dage 5.09 timer 3.05 minutter F1 RPW(10,62) 1 rep 13.3 år 48.5 dage 11.7 timer F1 RPW(10,78) 1 rep 132 år 1.32 år 4.82 dage F1 RPW(10,62) 100 rep 1.33 tusind år 13.3 år 48.5 dage
7 F1 RPW(10,78) 100 rep 13.2 tusind år 132 år 1.32 år F1 RPW(12,62) 1 rep 51.1 tusind år 511 år 5.11 år F1 RPW(12,78) 1 rep 804 tusind år 8.04 tusind år 80.4 år RPW(n,z) er en forkortelse for RPW(n,[z tegn]) Så hvor man måske vil betragte RPW(10,[A-Za-z0-9]) 1 rep som værende godt nok til eksperten.dk, så skal man måske op i RPW(10,[A-Za-z0-9ÆØÅæøå+-_,.?!$%#]) 100 rep eller RPW(12,[A-Za-z0-9]) 1 rep for en internet bank PC'ere lyder ikke af meget, men det er altså PC'ere med highend grafik-kort. Det vil kræve 1 million hr. og fru Jensen PC'ere at gøre det samme. Hash algoritmer MD5 og SHA-1 er stadig ret udbredte. NIST anbefalinger er ret klare: * MD5 har været forældet i årevis * SHA-1 betragtes som forældet siden 2010 * SHA-256 er godkendt indtil 2030 Vær imidler klar over at hash algoritmer kan have forskellige svagheder: * pre-image attack => bestemme input udfra output * collision attack => bestemme 2 input med samme output De fundne svagheder i MD5 og SHA-1 er collision attacks ikke pre-image attack (bortset fra et ikke praktisk anvendeligt pre-image attack på MD5). Så MD5 og SHA-1 er ikke katastrofale at bruge for passwords. Men jeg vil alligevel klart anbefale SHA-256 fordi: 1) fund af svagheder i en algoritme øger sandsynligheden for fund af flere svagheder i nærmeste frem og det kan godt betyde at succesfulde collision attacks øger sandsynligheden for succesfulde pre-image attacks i nærmeste frem 2) det er langt nemmere at verificere: - at der ikke bruges MD5 eller SHA-1 i noget kode end: - at de steder hvor der bruges MD5 eller SHA-1 er collision attack ikke et problem OWASP Der eksisterer en organisation som hedder OWASP (Open Web Application Security Project) med det formål at højne sikkerhedsniveauet på internettet. De anbefaler: * password længde (passphrases bør være )
8 * password skal have mindst 1 uppercase, mindst 1 lowercase, mindst 1 digit og mindst 1 specialtegn * brug både et per user salt gemt i databasen og et system salt gemt udenfor databasen * gem hashed password og salt hver for sig * gentag hash gange Deres anbefalinger er lidt skrappere end mine. Men husk "Just because I'm paranoid doesn't mean they're not out to get me.". Opsummering "Must have" for web sites: * gem passwords hashed med SHA-256 * brug forskellig tilfældig salt med mindst 64 bit for hver bruger * minimums længde 10 på passwords * forhindre brug af kendte ord via regler for passwords "Nice to have" for web sites: * tillad ikke-engelske bogstaver og special tegn i passwords * hash gange (check PBKDF2 og bcrypt for mere på dette område) "Must have" for brugere: * minimums længde 10 på passwords * brug aldrig kendte ord som password * brug aldrig samme password på forskellige web sites Kommentar af olebole d. 28. dec <ole> *< *< *< *< *<... Fem nissehuer for den julegave! Hvor er det dog befriende med en gennemarbejdet, saglig guide efter en lang ørkenvandring af reklamespam og pre-newbie-aspirant-skriblerier. Tak! Endnu en velforklaret, veldokumenteret og velillustreret guide fra arne_v(id). Den er letforståelig og rigtig god at kunne linke til. Der kommer jævnligt mere eller mindre fantasifulde bud på emnet, så er det rart med en 'nail-hitter' =) Tak, fordi du (gang på gang) gør det! /mvh </bole> Kommentar af rapsac d. 04. jan
9 Rigtig lækker guide. Super fedt med reelle tal på hvor lang det vil tage at brute-force, det sætter lidt det hele i perspektiv; hvor lidt man rent faktisk skal opdatere for at opnå en langt større sikkerhed. Tror måske jeg hopper væk fra MD5 nu :-) Kommentar af magic-mouse d. 08. jan Super guide, let at læse let og forstå. Samig er statestikken skræmmende, og et godt eksempel (som man til og med ikke er bange for at vise til sin chef) som argument for hvorfor man skal kigge på sine sikkerheds anordninger. 5 stjerner her fra. Keep up the good work! Kommentar af bilbodog d. 20. jul Super guide. Elsker, at der er relateret til virkeligheden. Det sætter et helt andet perspektiv på tingene. Jeg smutter hvert fald fra MD5 nu og benytter mig nok af SHA-256, Hashing og Salt. Takker og bukker.
PasswordHacking med Rainbow Crack
Denne guide er oprindeligt udgivet på Eksperten.dk PasswordHacking med Rainbow Crack Windows passwords er døde. Selv de bedste passwords kan crackes på få minutter. Rainbow Crack er et spændende projekt
Læs mereDatabase tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk
Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som
Læs mereDatabase design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereBegrynder til at lave log ind system
Denne guide er oprindeligt udgivet på Eksperten.dk Begrynder til at lave log ind system Hej Vil jeg gerne lave en lille programmering forklare til hvordan du laver din helt egen lille start på at log ind
Læs mereJava web applikationer med Tomcat
Denne guide er oprindeligt udgivet på Eksperten.dk Java web applikationer med Tomcat Denne artikel beskriver hvordan man kan konfigurere container managed security og en database connection pool i Tomcat.
Læs mere//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereIT projekt person galleri
Denne guide er oprindeligt udgivet på Eksperten.dk IT projekt person galleri Denne artikel forsøger at forklare lidt om hvilke funktioner der ligger bag ved de forskellige titler som deltagerne i et IT
Læs mereForskellige Java versioner
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft
Læs mereLog ind med PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 09. May 2011 af dab93 I kategorien Programmering / Andre
Denne guide er oprindeligt udgivet på Eksperten.dk Log ind med PHP Med denne guide lærer du hvordan du kan logge ind på din hjemmeside med PHP. Guiden viser dig hvordan koderne skal opstilles, og hvad
Læs mereParameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med
Læs mereI denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Læs mereArkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
Læs mereIntroduktion til SQL queries
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i
Læs mereEndnu mere om tilfældige tal
Denne guide er oprindeligt udgivet på Eksperten.dk Endnu mere om tilfældige tal Denne artikel bygger oven på de to forrige artikler om tilfældige tal. Den indeholder lidt matematik og anvendelse på PHP
Læs mereDelphi og Databaser for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med
Læs mereWebsite sikkerhed SQL Injections og mere...
... Skrevet af Daniel Pedersen 1 Introduktion Sikkerheden i dag skal være i top, der er rigtig mange små hurtige og nemme metoder til at få adgang til ens hjemmeside. Mange er ikke ældre end 14 år, og
Læs mereDet er primært relevant for dem hvor der arbejdes på en gammel bærbar computer, som ikke har en stærk processer og nok ram, at gøre godt med.
Denne guide er oprindeligt udgivet på Eksperten.dk Optimer XP manuelt! Jeg beskriver 9 skridt man kan udføre hvis man er interesseret i, at gøre XP hurtigere ved start, nedlukning og generelt! Hvis du
Læs mereRatingsystem i PHP og MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Ratingsystem i PHP og MySQL Lær at lave et system til at vise rating/bedømmelse på artikler og nyheder. Skrevet den 03. Feb 2009 af virtual1ty I kategorien
Læs mereKoden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!
Denne guide er oprindeligt udgivet på Eksperten.dk Slideshow - Guide Denne guide gennemgår grundigt og forklarende hvordan man i Flash laver et slideshow med simpel fade-effekt med billeder hentet dynamisk.
Læs mereIT-Sikkerhed - en klods om benet eller sund fornuft? Lars Ole Pedersen OZ5VO Et dialog foredrag
IT-Sikkerhed - en klods om benet eller sund fornuft? Lars Ole Pedersen OZ5VO Et dialog foredrag Oversigt Introduktion Trusselsvurdering Center for Cybersikerhed Password sikkerhed og beskyttelse Virus/Malware
Læs mereEt udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.
Konkrete funktioner Potenser Som udgangspunkt er brugen af potenser blot en forkortelse for at gange et tal med sig selv et antal gange. Hvis a Rskriver vi a 2 for a a a 3 for a a a a 4 for a a a a (1).
Læs mereNøglehåndtering. Sikkerhed04, Aften
Basalt problem Al kryptografisk sikkerhed er baseret på nøgler som ikke er kryptografisk beskyttet I stedet må disse nøgler beskyttes fysisk 2 Løsninger Passwords noget du ved Hardware noget du har Biometri
Læs mereMålet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer
Læs mereTagwall med Php & MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang (API =
Læs mereSkrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel
Læs mereMed register_globals = On får du automatisk adgang til en række variabelnavne i dit script.
Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt.
Læs mereHack of the Month opgave 2
Hack of the Month opgave 2 www.hackofthemonth.dk Holdet bag www.hackofthemonth.dk: Søren Rasmus (ikke mig) Roninz Stiller hver måned en ny opgave: Applikationssikkerhed Webapplikationssikkerhed Slide 2
Læs mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software
Læs mereRÅDET FOR DIGITAL SIKKERHED GUIDE TIL SIKRING AF FORBRUGER- ELEKTRONIK PÅ INTERNETTET
GUIDE TIL SIKRING AF FORBRUGER- ELEKTRONIK PÅ INTERNETTET TING PÅ INTERNETTET Internet of things er et moderne begreb, som dækker over, at det ikke længere kun er computere, der er på internettet. Rigtig
Læs mereI denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.
Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien
Læs mere\ \ Computerens Anatomi / /
HTX Roskilde - mat-it-prog, 1.4 \ \ Computerens Anatomi / / Introduktion En PC ( personlige computer ) eller computer er bygget op af forskellige komponenter. Vi vil hermed gennemgå størstedelen af computerens
Læs mereVejledning til tilsynsledere vedr. brug af pc
Vejledning til tilsynsledere vedr. brug af pc Indhold 1. Sådan logger du på den pc du har fået udleveret... 1 2. Sådan logger du på det trådløse netværk... 1 3. Sådan logger du på Digital eksamen med WAYF...
Læs mereLav en Wiki med PBworks Side 1
Lav en Wiki med PBworks Side 1 Lav en Wiki med PBworks En Wiki er en materialesamling, der er samlet af brugerne selv eller af udvalgte brugere. Navnet kommer fra Wikipedia, der jo er et leksikon skrevet
Læs mereTilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.
Merging og Hashing Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer. API for sekventiel tilgang (API = Application
Læs mereMålet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.
Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål
Læs mereRedaktørvejledning for www.bredstrup-pjedsted.dk Skriv en artikel
Arbejdsgang - Skriv artiklens tekst - Gør billeder klar - Log-in på hjemmesiden - Opret ny artikel - Vælg kategori - Skriv overskrift - Indsæt tekst - Tilføj billeder - Gennemgå artiklens indstillinger
Læs mereBrugerdefineret menuer i Access
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerdefineret menuer i Access Denne artikel henvender sig primært til let øvede brugere af Access, der ønsker at komme i gang med at tilpasse egne menuer
Læs mereDenne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW.
Denne guide er oprindeligt udgivet på Eksperten.dk CSS - en gennemgang Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW. Der er lidt CSS historie
Læs mereSpecialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6
Side 1 af 6 Indholdsfortegnelse INDHOLDSFORTEGNELSE 1 INTRO 3 STARTEN AF SPECIALISERINGEN 3 ANKOMST TIL SKOTLAND 4 DATABASER 5 NETVÆRK 5 INTERAKTION 5 AFSLUTNING AF SPECIALISERINGEN 5 KONKLUSION 6 Side
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereTilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.
Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter
Læs mereFlerbruger miljø, opdel database
Denne guide er oprindeligt udgivet på Eksperten.dk Flerbruger miljø, opdel database Denne artikel henvender sig primært til begyndere og let øvede brugere af Access der ønsker at vide noget om flerbruger
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereTest med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereBits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Læs merePasswordvejledning PIXI udgave
Passwordvejledning PIXI udgave Center for Cybersikkerhed September 2016 1 Brugernavn og password er i høj kurs hos hackere. Det er stadig en ofte anvendt og succesfuld angrebsmetode til at skaffe sig uautoriseret
Læs mereFACEBOOK. For at finde disse indstillinger, skal du gå til Indstillinger på Facebook og derefteer til underkategorien Apps.
Facebook indsamler information om dig blandt andet gennem din Facebookprofil. Hvem kan se dine oplysninger, og hvordan beskytteer du selv dine data? I forbindelse med den nylige skandale omkring Facebooks
Læs mereSådan opretter du en backup
Excovery Guide Varighed: ca. 15 min Denne guide gennemgår hvordan du opretter en backup med Excovery. Guiden vil trinvist lede dig igennem processen, og undervejs introducere dig for de grundlæggende indstillingsmulighed.
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Læs mereFjernopkobling. - Vejledning i førstegangs fjernopkobling via en IKKE. Banedanmark pc
Fjernopkobling - Vejledning i førstegangs fjernopkobling via en IKKE Banedanmark pc 1 Installation af software til adgangsportal (gælder ikke brugere, der anvender en Banedanmark pc, eller brugere, der
Læs mereOpsætning af ASUS Router
Opsætning af ASUS Router I dette dokument vil vi forsøge at guide dig igennem opsætning af din nye ASUS router, trin for trin. Pak først routeren ud af æsken og stil den et centralt sted i lejligheden
Læs mereIntroduktion til DM507
Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer
Læs mereRuko Security Master Central Database
Ruko Security Master Central Database RSM benytter en central database, til at udveksle låsesystemer mellem Ruko og låsesmeden. Udvekslingen sker via Internettet, så det er derfor nødvendigt at have en
Læs mereGør Administrator-brugeren til almindelig bruger
Denne guide er oprindeligt udgivet på Eksperten.dk Gør Administrator-brugeren til almindelig bruger Guide til at fjerne den indbyggede administrator fra administratorgruppen. Det kræver et rimeligt godt
Læs mereSESSION med PHP. En let begynderguide som kan føre dig ind i en verden af muligheder. Denne guide er oprindeligt udgivet på Eksperten.
Denne guide er oprindeligt udgivet på Eksperten.dk SESSION med PHP En let begynderguide som kan føre dig ind i en verden af muligheder Skrevet den 03. Feb 2009 af mccookie I kategorien Programmering /
Læs mereArrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Arrays i PHP De fleste som har skrevet omfattende scripts, er før eller siden stødt på problemet med at de bliver vanskelige at overskue hvis man bruger
Læs merevorbasse.dk Redaktørmanual Kentaur
Redaktørmanual Kentaur Indholdsfortegnelse Kapitel 1 - TYPO3 Brugerfladen 3 Log ind 3 Backend 4 Frontend 5 Hvor skal jeg klikke? 5 Gem, gem og vis, gem og luk 6 Kapitel 2 - Sider & menuer 7 Sammenhæng
Læs mereLoginsystem (med MySQL)
Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem (med MySQL) Dette er en guide til, hvordan man kan lave et loginsystem med php og muligvis også med sessioner og MySQL Skrevet den 02. Feb
Læs mereSend fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.
Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt
Læs mereSom sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste
Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),
Læs mereGæstebog med validering opbygget med MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Gæstebog med validering opbygget med MySQL Dette er en simpel gæstebog, som kan hjælpe folk med at lave en velfungerende gæstebog uden alt for meget arbejde.
Læs mereRolf Fagerberg. Forår 2013
Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,
Læs mereBilag 13: Transskription af interview med Marc
13: Transskription af interview med Marc I denne transskription vil Interviewer blive refereret til som Int og respondenten vil blive refereret til som Marc. Spørgsmål vil være i fed og svar vil være i
Læs mereI mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.
Denne guide er oprindeligt udgivet på Eksperten.dk Hvem er online? Online script, som tager højde for at der kan være flere personer, som har den samme IP-adresse. Scriptet viser hvor lang tid brugeren
Læs mereRolf Fagerberg. Forår 2014
Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig
Læs mereapplikation----x----odbc driver manager----foobar ODBC driver----foobar database
Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Læs mereMerging og Hashing (del I)
Merging og Hashing (del I) Tilgang til data To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer. API for sekventiel tilgang
Læs mereSimpel upload af filer
Denne guide er oprindeligt udgivet på Eksperten.dk Simpel upload af filer Jeg ser tit brugere spørge til hvordan man uploader en fil via php. Nu vil jeg prøve ganske kort at lave lidt kode og forklare
Læs mereHej alle sammen, nu fjerner vi lige mystikken om alle de "ulovlige tags" her på eksperten.dk
Denne guide er oprindeligt udgivet på Eksperten.dk Tags på Eksperten.dk Hej alle sammen, nu fjerner vi lige mystikken om alle de "ulovlige tags" her på eksperten.dk Skrevet den 30. okt 2009 af mbm2007
Læs mereBEC. NetScaler Unmanaged VPN. Installation. Bruger Vejledning. Version
BEC NetScaler Unmanaged VPN Installation og Bruger Vejledning Version 1.3 2017-09-11 Ref. JN Data A/S RemoteAccess Team Side 1 af 19 BEC NetScaler Unmanaged info / vejledning til testere Indhold BEC NetScaler
Læs mereInstallation og administration af MarvinSketch. Anders Almlund Osted, Køge Gymnasium
Installation og administration af MarvinSketch Anders Almlund Osted, Køge Gymnasium September 2015 1 Indholdsfortegnelse Administration af programmet... 3 Registrering... 3 Ansøg om undervisningslicens...
Læs merePrepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.
Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereInstallation af software Datasuite til Fourtec Microlite II dataloggere og Picolite
Installation af software Datasuite til Fourtec Microlite II dataloggere og Picolite Tilslut ikke loggeren endnu. Hent software Datasuite på www.fourtec.com Klik på 'Download Datasuite Software'. Note:
Læs mereEuklids algoritme og kædebrøker
Euklids algoritme og kædebrøker Michael Knudsen I denne note vil vi med Z, Q og R betegne mængden af henholdsvis de hele, de rationale og de reelle tal. Altså er { m } Z = {..., 2,, 0,, 2,...} og Q = n
Læs mereOvervågningskamera. ~Af Svend, Valdemar og Frederik~
Lavet af Svend, Valdemar og Frederik 2.3 HTX - Roskilde Overvågningskamera ~Af Svend, Valdemar og Frederik~ I dette forløb har vi arbejdet med overvågningskameraer. Det handlede om at lære, hvordan et
Læs mereDynamisk PHP design OPDATERET
Denne guide er oprindeligt udgivet på Eksperten.dk Dynamisk PHP design OPDATERET I har måske undret jer over "http://bla.dk/?side=kontakt", her beskriver jeg hvordan, og hvorfor Skrevet den 03. Feb 2009
Læs mereAnklagemyndighedens Vidensbase
Anklagemyndighedens Vidensbase Indhold 1 OM DENNE VEJLEDNING... 2 2 LOGIN... 3 3 SØGNINGER... 4 3.1 SØG EFTER DOKUMENTER... 4 3.2 NAVIGÉR DIG FREM... 5 3.3 KOMBINÉR SØGNING OG NAVIGATION... 6 3.4 VISNING
Læs mereI denne manual kan du finde en hurtig introduktion til hvordan du:
VORES NORDSJÆLLAND HURTIGT I GANG MANUAL 01: Bruger HVAD INDEHOLDER DENNE MANUAL? I denne manual kan du finde en hurtig introduktion til hvordan du: 1. Finder Vores Nordsjælland hjemmesiden 2. Opretter
Læs mereFjernadgang til BEC s systemer via Portal2
Fjernadgang til BEC s systemer via Portal2 - tilgå applikationer og arbejdsplads via webbaseret portal (UAG) Udarbejdet af: Niklas Petersen Gældende fra: 24-08-2015 Version Forfatter Dato Dokumentstatus
Læs mereRolf Fagerberg. Forår 2015
Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA
Læs mereDokumentation af programmering i Python 2.75
Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt
Læs mereRevision af firewall. Jesper B. S. Christensen. Sikkerhed og Revision 6/7 September 2018
Revision af firewall Jesper B. S. Christensen Sikkerhed og Revision 6/7 September 2018 Jesper B. S. Christensen Senior Consultant Deloitte, Risk Advisory, Cyber Secure (dem I ikke har hørt om før) IT-Ingeniør,
Læs mereI denne guide vil jeg prøve at give en beskrivelse af hvad man skal gøre for at få adgang til Microsoft Azure via Dreamspark når man går på Easj.
Guide til Azure I denne guide vil jeg prøve at give en beskrivelse af hvad man skal gøre for at få adgang til Microsoft Azure via Dreamspark når man går på Easj. Der er en lille grå zone under registreringen
Læs mereTips til siden Slægtstræ
Tips til siden Slægtstræ Indholdsfortegnelse Indledning 1 Kom godt i gang 1 Kildecitater og links til online arkivalier: 5 Familier 9 Export, import og backup: 10 Folketællinger: 10 Om noter og rapporter
Læs mereGECKO Booking Vejledning til spørgeskema-modul. Læsevejledning. Indholdsfortegnelse
GECKO Booking Vejledning til spørgeskema-modul Er der behov for at få et indgående kendskab til kunden, når de bruger bookingsystemet? Hvad siger brugerne efterfølgende om den service, de har fået? Ved
Læs mereMini brugermanual CMD 5.1
Mini brugermanual CMD 5.1 Kom i gang For at tilgå CMD skal du åbne en web browser og indtaste URL en på dit CMD website i adressefeltet, hvorefter dialogboksen til log in vises. 1. Indtast dit brugernavn
Læs mereGuide - Sådan opretter du en backup
Guide - Varighed: ca. 10 min Denne guide gennemgår hvordan en backup oprettes i Excovery. Guiden vil trinvist lede dig igennem processen og vil undervejs introducere de grundlæggende indstillingsmuligheder.
Læs mereDenne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.
Denne guide er oprindeligt udgivet på Eksperten.dk XML i ASP Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Den forudsætter
Læs mereIT-sikkerhed som et byggeprojekt?
IT-sikkerhed som et byggeprojekt? IT-sikkerhed hvem har ansvaret hvornår? Morten von Seelen, 2016-09-20 Baggrund Hvorfor er det overhovedet vigtigt for os? 2 Morten von Seelen mvonseelen@deloitte.dk Direkte:
Læs mereKontrol-strukturer i PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereOpgradering til version 4 af Netaflæsningsmodulet
Opgradering til version 4 af Netaflæsningsmodulet Den nye version af netaflæsningsmodulet adskiller sig væsentligt fra den gamle version, ved at forbrugeren slår direkte op i værkets data, i stedet for
Læs mereGuide til elektronisk retning
Guide til elektronisk retning Jens Sveistrup, Gl. Hellerup Gymnasium Elektronisk aflevering er med elevernes større anvendelse af computer i undervisningen og med Lectios store udbredelse blevet mere og
Læs mereHillerød Kommune. It-sikkerhedspolitik Bilag 8. Kontrol og adgang til systemer, data og netværk
It-sikkerhedspolitik Bilag 8 Kontrol og adgang til systemer, data og netværk November 2004 Indholdsfortegnelse 1 Formål...3 2 Ansvar og roller...3 2.1 Byrådet...3 2.2 Kommunaldirektøren/ Direktionen...3
Læs mereFjernadgang til BEC s systemer via Portal2
Fjernadgang til BEC s systemer via Portal2 - tilgå applikationer og arbejdsplads via webbaseret portal (UAG) Udarbejdet af: Niklas Petersen Gældende fra: 24-08-2015 Version Forfatter Dato Dokumentstatus
Læs mereIntro Det følgende forudsætter, at du enten:
Kort vejledning i at blogge via Wordpress v. Kim Elmose blogredaktør, Politiken Marts 2007 1 Intro Det følgende forudsætter, at du enten: Har oprettet en gratis blog via Wordpress.com (http://wordpress.com)
Læs mere