Wachtwoord encrypten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Junior Java Developer

Dit ga je doen Full stack web- en appdevelopment; Vertalen van de functionele wensen naar de technische specificaties; Sturing geven aan/klank board zijn voor de software teams; Trainen van de software teams; Sparren met klanten; Meedenken over architectuur. Hier ga je werken De organisatie is een bureau welke websites en mobiele applicaties bouwt voor verschillende toonaangevende organisaties. Hierbij richten zij zich voornamelijk op de sectoren leisure, overheid en zorg. De sfeer intern kenmerkt zich door informaliteit, gezelligheid en ambitie. Ze werken dag in dag uit samen om mooie producten op te leveren voor hun klanten. Op dit moment zijn er

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan

Bekijk vacature »

In-house .NET software developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house development functie? Maak jij graag hét verschil m.b.t. interne automatisering? Haal jij energie uit het automatiseren van processen voor je eigen collega's? Dan hebben wij de perfecte vacature voor je! Voor een gezellig Brabants familiebedrijf, zijn wij op zoek naar een .NET software developer. Je gaat in deze zelfstandige functie werken aan de ontwikkeling van eigen applicaties & en het koppelen van deze applicaties aan de ingekocht software. Jouw werkzaamheden zien er als volgt uit: Het management team signaleert behoeftes vanuit de business. Vervolgens worden deze behoeftes uitgewerkt en geprioriteerd.

Bekijk vacature »

Java Developer bij een jonge groeiende organisatie

Bedrijfsomschrijving Vind jij het als Java developer ook zo belangrijk dat een bedrijf je de ruimte en tijd geeft voor persoonlijke ontwikkeling? Dan zit je hier helemaal goed. Deze jonge organisatie is opgericht in 2018 en is ondertussen uitgegroeid tot een club van ongeveer 30 medewerkers. Het gaat hier om een echte Java club, die vrijheid en verantwoordelijkheid erg belangrijk vinden. Het bedrijf heeft een informele sfeer en de teams zijn erg hecht met elkaar. Ze delen graag de kennis en ervaringen met anderen, maar vinden andermans mening ook zeer belangrijk. De organisatie zet zich in voor ontwikkeling en besteed

Bekijk vacature »

PHP developer (Laravel/Vue.js)

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

.NET developer

Functie Als .NET developer start jij in een ontwikkelteam met 15 developers en twee testers. Samen zijn jullie verantwoordelijk voor financiële applicaties met meer dan 50.000 gebruikers. Een deel van het team is verantwoordelijk voor de webapplicaties van deze organisatie. Ook zijn er twee app ontwikkelaars werkzaam in het team die zich focussen op de mobiele applicatie. Als .NET ontwikkelaar ga jij aan de slag met de webapplicaties van deze organisatie. Hierbij maak jij o.a. gebruik van C# .NET, ASP.NET, T-SQL, Angular en TypeScript. De nadruk van jouw functie ligt wel op de backend van de applicatie. Wat jouw functie

Bekijk vacature »

Full Stack Software Developer C#.NET

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

Bekijk vacature »

Lead C++ Developer

The role of Lead C++ Developer As Lead C++ Developer at KUBUS you will be responsible for the implementation design of requirements and the software architecture of the desktop applications of BIMcollab, our platform for 3D model validation and issue management aimed at improving the quality of 3D building design models. Better 3D models lead to better buildings, thus contributing to the sustainability of the built environment with smarter use of materials, less waste and energy-efficient buildings. A good user experience is of paramount importance to us; we go for innovation and quality in our development. In your role as

Bekijk vacature »

.NET developer

Functie As a .NET developer you start in a driven and diverse development team. Your team consists of 16 IT professionals, including 7 software engineers. Because your new employer is internationally active, there are also international IT professionals working in the IT department. As a result, the official language is English. As a team you are responsible for a new Cloud Native product. This product runs entirely in Azure with a Progress Database and various Azure Functions. In addition, this product has a JS front-end, a REST API system and a layer in C # .NET. The idea is therefore

Bekijk vacature »

Back-End Developer in Laravel / PHP

Functie omschrijving Wij zijn op zoek naar een Medior PHP Laravel Developer voor een gaaf bedrijf in de omgeving van Amsterdam! Voor een enthousiast team die zich graag bezig houdt met softwareontwikkeling zijn wij op zoek naar versterking. Je werkt in een klein ontwikkelteam en bent zeer betrokken bij alle aspecten van de softwareoplossingen. Van het ontwerpen tot de oplevering. Binnen deze functie ga je aan de slag met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je krijgt veel te maken met koppelingen naar systemen en de verzoeken van de klant. Je komt terecht in een team, waarbij

Bekijk vacature »

Front-end developer (React)

Functie Het frontend team bestaat momenteel uit 4 dedicated front-enders en is hard aan het groeien! Ook werken er diverse designers waar je veel mee schakelt. Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren, jij bent hierin de schakel tussen de eindgebruiker en de slimme backend. Je werkt in het frontend team samen met de backend teams en product owners om te zorgen dat onze applicaties een fijne gebruikerservaring opleveren. Ze werken o.a. met: React, Atomic design, Styled components, JavaScript / TypeScript, NPM, Webpack Blade templates, HTML, SCSS, Git flow. Eisen • HBO

Bekijk vacature »

Medior front-end developer gezocht (€3.300 -

Functie Wat ga je doen? Jij als front-end developer gaat werken binnen de teams van/voor onze klant. Je werkt in een team met starters en ervaren ontwikkelaars met allemaal 1 overeenkomst; passie voor het vak. Maak je een fout? Geen probleem, leer ervan en ga dan weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en jezelf dus snel ontwikkelen. Wat hebben we jou te bieden? • Uitdagende projecten bij mooie klanten (bij jou in de buurt, of binnenkort intern vanuit ons kantoor!) • Een jonge organisatie met talentvolle collega’s • Veel ruimte voor

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Pagina: 1 2 volgende »

Sam H

Sam H

23/01/2013 15:56:39
Quote Anchor link
Hey iedereen,

ik ben me wat aan het verdiepen in wachtwoordbeveiliging. Ik gebruik altijd gewoon een MD5 maar nu vraag ik me af of dit wel zo veilig is?

Ik heb al redelijk wat gelezen en heb al wel ontdekt dat je best niet meerde hashes over elkaar gebruikt omdat het dan makelijker 'te kraken' is. Hoe komt dit ik snap de analogie hier niet van. Welke methode gebruiken jullie?

Alvast bedankt
Gewijzigd op 23/01/2013 15:56:54 door Sam H
 
PHP hulp

PHP hulp

26/04/2024 08:58:34
 
- Ariën  -
Beheerder

- Ariën -

23/01/2013 16:06:54
Quote Anchor link
De beste manier is SHA1() met een unieke salt...

Dus $pass = "PHpHu1pi$7H383$7".$_POST['password'];
Zodra je de leden zich aanmelden sla je hun password op met die unieke salt ervoor. Zo is kraken zeer lastig, gezien het wachtwoord uiteindelijk minimaal 26 tekens kent (ervanuitgaande dat je alleen wachtwoorden toestaat van 6 tekens lang.
Gewijzigd op 23/01/2013 16:07:19 door - Ariën -
 
Sam H

Sam H

23/01/2013 16:17:41
Quote Anchor link
Ah ik dacht altijd dat bij een salt erdoorheen werd gegooid als volgt:
Salt: APPELS
Pass: phphulp123

=> pAhpPhPuElpL1S23

Simpel voorbeeld maar je snapt wel wat ik bedoel.

EDIT:

Ik vond over sha1 dit nog op php.net:
Quote:
Note: Secure password hashing
It is not recommended to use this function to secure passwords, due to the fast nature of this hashing algorithm. See here for details.
Gewijzigd op 23/01/2013 16:20:04 door Sam H
 
Moose -

Moose -

23/01/2013 16:18:59
 
Sam H

Sam H

23/01/2013 16:23:40
Quote Anchor link
Als ik het artikel goed versta, wilt het zeggen dat bcrypt een zeer traag encryptie algoritme is. Dus dit is veiliger omdat het voor bruteforce attacks pakken langer gaat duren? Dus het enige wat bcrypt doet, is de tijd nodig om in te loggen tragen maken, of zit ik mis?
Alvast bedankt beiden voor de hulp
 
- Ariën  -
Beheerder

- Ariën -

23/01/2013 16:26:11
Quote Anchor link
Sam H op 23/01/2013 16:17:41:

Ik vond over sha1 dit nog op php.net:
Quote:
Note: Secure password hashing
It is not recommended to use this function to secure passwords, due to the fast nature of this hashing algorithm. See here for details.

Tenzij je een salt gebruikt.
 
Sam H

Sam H

23/01/2013 16:38:43
Quote Anchor link
Ik heb hier een class gevonden die bcrypt genereert en verifieerd.
Als ik het localhost run, duurt het 9 seconden (!) voor het simpele wachtwoord 'password' te encrypten.
Dit is toch wel héél erg lang ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
class Bcrypt {
  private $rounds;
  public function __construct($rounds = 12) {
    if(CRYPT_BLOWFISH != 1) {
      throw new Exception("bcrypt not supported in this installation. See http://php.net/crypt");
    }


    $this->rounds = $rounds;
  }


  public function hash($input) {
    $hash = crypt($input, $this->getSalt());

    if(strlen($hash) > 13)
      return $hash;

    return false;
  }


  public function verify($input, $existingHash) {
    $hash = crypt($input, $existingHash);

    return $hash === $existingHash;
  }


  private function getSalt() {
    $salt = sprintf('$2a$%02d$', $this->rounds);

    $bytes = $this->getRandomBytes(16);

    $salt .= $this->encodeBytes($bytes);

    return $salt;
  }


  private $randomState;
  private function getRandomBytes($count) {
    $bytes = '';

    if(function_exists('openssl_random_pseudo_bytes') &&
        (
strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')) { // OpenSSL slow on Win
      $bytes = openssl_random_pseudo_bytes($count);
    }


    if($bytes === '' && is_readable('/dev/urandom') &&
       (
$hRand = @fopen('/dev/urandom', 'rb')) !== FALSE) {
      $bytes = fread($hRand, $count);
      fclose($hRand);
    }


    if(strlen($bytes) < $count) {
      $bytes = '';

      if($this->randomState === null) {
        $this->randomState = microtime();
        if(function_exists('getmypid')) {
          $this->randomState .= getmypid();
        }
      }


      for($i = 0; $i < $count; $i += 16) {
        $this->randomState = md5(microtime() . $this->randomState);

        if (PHP_VERSION >= '5') {
          $bytes .= md5($this->randomState, true);
        }
else {
          $bytes .= pack('H*', md5($this->randomState));
        }
      }


      $bytes = substr($bytes, 0, $count);
    }


    return $bytes;
  }


  private function encodeBytes($input) {
    // The following is code from the PHP Password Hashing Framework
    $itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

    $output = '';
    $i = 0;
    do {
      $c1 = ord($input[$i++]);
      $output .= $itoa64[$c1 >> 2];
      $c1 = ($c1 & 0x03) << 4;
      if ($i >= 16) {
        $output .= $itoa64[$c1];
        break;
      }


      $c2 = ord($input[$i++]);
      $c1 |= $c2 >> 4;
      $output .= $itoa64[$c1];
      $c1 = ($c2 & 0x0f) << 2;

      $c2 = ord($input[$i++]);
      $c1 |= $c2 >> 6;
      $output .= $itoa64[$c1];
      $output .= $itoa64[$c2 & 0x3f];
    }
while (1);

    return $output;
  }
}

?>
 
Aad B

Aad B

23/01/2013 16:48:53
Quote Anchor link
Brute force gewoon uitsluiten, drie keer fout = gelocked en nieuw password aanvragen door gebruiker.
 
Sam H

Sam H

23/01/2013 16:50:12
Quote Anchor link
Ja dit gebruik ik ook (enkel ipv gelocked gebruik ik een timeout van 5 minuten).
 
Ozzie PHP

Ozzie PHP

23/01/2013 16:55:14
Quote Anchor link
Aad B op 23/01/2013 16:48:53:
Brute force gewoon uitsluiten, drie keer fout = gelocked en nieuw password aanvragen door gebruiker.

Is dat niet heel erg extreem? De gebruiker logt per ongeluk 3x verkeerd in en moet dan meteen een nieuw wachtwoord aanvragen? Lijkt me niet echt gebruiksvriendelijk.
 
Erwin H

Erwin H

23/01/2013 16:55:54
Quote Anchor link
Aad B op 23/01/2013 16:48:53:
Brute force gewoon uitsluiten, drie keer fout = gelocked en nieuw password aanvragen door gebruiker.

En wat als ze in een brute force attack een hele lijst met usernamen aflopen, maar dan met elke keer hetzelfde (een gebruikelijk) password? Ben je alsnog de Sjaak.

Brute Force attacks kan je helaas niet met een simpele beveiliging voorkomen. Als dat namelijk zou kunnen zou het niet meer voorkomen. Meerdere beveiligingen is altijd beter.
- loggen waar de aanvragen vandaan komen
- loggen op welke username er wordt geprobeerd
- inlog vertragen

En als iemand nog andere mogelijkheden heeft om attacks tegen te gaan ben ik ook nog wel benieuwd.
 
Sam H

Sam H

23/01/2013 16:59:33
Quote Anchor link
Ik sla momenteel het IP adres en username op bij een mislukte inlogpoging, is dit groter dan 3 dan geef ik die username en/of IP een timeout van 5 minuten. Nu ga ik ook bcrypt gebruiken, ik heb een class gevonden waarbij het ongeveer 3 seconden duurt om een wachtwoord te verifiëren.
Dus dit lijkt me wel veilig genoeg?

Voor de geïnteresseerden, dit is de uiteindelijke klasse die ik ga gebruiken (de vorige deed er 9 seconden over, dit lijkt me wat extreem):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
 
class Bcrypt {
  private $rounds;
  private $prefix;
  
  public function __construct($prefix = '', $rounds = 12) {
    if(CRYPT_BLOWFISH != 1) {
      throw new Exception("bcrypt not supported in this installation. See http://php.net/crypt");
    }

 
    $this->rounds = $rounds;
    $this->prefix = $prefix;
  }

 
  public function hash($input) {
    $hash = crypt($input, $this->getSalt());
 
    if(strlen($hash) > 13)
      return $hash;
 
    return false;
  }

 
  public function verify($input, $existingHash) {
    $hash = crypt($input, $existingHash);
 
    return $hash === $existingHash;
  }

 
  private function getSalt() {
    // the base64 function uses +'s and ending ='s; translate the first, and cut out the latter
    return sprintf('$2a$%02d$%s', $this->rounds, substr(strtr(base64_encode($this->getBytes()), '+', '.'), 0, 22));
  }

  
  private function getBytes() {
    $bytes = '';
 
    if(function_exists('openssl_random_pseudo_bytes') &&
        (
strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN')) { // OpenSSL slow on Win
      $bytes = openssl_random_pseudo_bytes(18);
    }

 
    if($bytes === '' && is_readable('/dev/urandom') &&
       (
$hRand = @fopen('/dev/urandom', 'rb')) !== FALSE) {
      $bytes = fread($hRand, 18);
      fclose($hRand);
    }

    
    if($bytes === '') {
      $key = uniqid($this->prefix, true);
      
      // 12 rounds of HMAC must be reproduced / created verbatim, no known shortcuts.
      // Changed the hash algorithm from salsa20, which has been removed from PHP 5.4.

      for($i = 0; $i < 12; $i++) {
        $bytes = hash_hmac('snefru256', microtime() . $bytes, $key, true);
        usleep(10);
      }
    }

    
    return $bytes;
  }
}

 
?>
 
- Ariën  -
Beheerder

- Ariën -

23/01/2013 17:03:04
Quote Anchor link
Gewoon een vertraging per IP.

3x een foute pass, 10 seconden wachttijd, daarna meer drie, en dan steeds 25 sec wachttijd en dat steeds ophogen of het IP blokkeren na verloop van tijd.

Zorg ervoor dat de gebruiker buiten schot blijft.
 
Sam H

Sam H

23/01/2013 17:03:59
Quote Anchor link
Ik heb gehoord dat hackers constant van IP adres veranderen (hoe, geen idee) en daarom doe ik ook de username.
 
Eddy E

Eddy E

23/01/2013 18:43:44
Quote Anchor link
Precies, gewoon IP en/of gebruikersnaam.
Als er op 1 gebruikersnaam 3 (of meer) inlogpogingen zijn gewoon met sleep() de boel een paar seconden vertragen.
En na 10x IP adres blokkeren (al is het maar voor 10 minuten).
 
Sam H

Sam H

23/01/2013 19:02:58
Quote Anchor link
En dan voor de hash is eigenlijk MD5 prima?
 
Eddy E

Eddy E

23/01/2013 19:55:01
Quote Anchor link
Nee, MD5 is A-Z, a-z en 0-9
Dan mis je alle $*(@&$_#Y)#€½¾@!&*()[]|\ dingen bijvoorbeeld terwijl die juist het moeilijk maken.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

23/01/2013 20:22:14
Quote Anchor link
Inderdaad, MD5 en SHA1 zijn hashes en GEEN encryptie.
Die hashes zijn algoritmes die je zelf kunt programmeren, en daardoor kan je gewoon ook simpel gestelt ze terugvoeren naar het oorspronkelijke als je de tijd en de moeite neemt.
 
Sam H

Sam H

23/01/2013 20:24:36
Quote Anchor link
Dus wat moet ik dan gebruiken? Toch Bcrypt?
 
Ozzie PHP

Ozzie PHP

23/01/2013 20:26:40
Quote Anchor link
Eddy E op 23/01/2013 18:43:44:
... gewoon met sleep() de boel een paar seconden vertragen.

Hoe moet ik dat zien... kun je dan sleep instellen op 5 minuten en doet de website dan 5 minuten niks meer?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

23/01/2013 20:29:39
Quote Anchor link
SSL is de meest optimale beveiliging, de rest is allemaal maar een beetje extra hangsloten op de deur.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.