Wachtwoord hash

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

.NET developer WO niveau voor predictive software

Bedrijfsomschrijving Dit bedrijf uit Den Bosch is om precies te zijn 15 medewerkers groot en ze ontwikkelen (predicitve) planning software. Dit doen zij voor allerlei mooie en bekende organisaties (bierbrouwerijen, gemeentes, oliemaatschappijen en diverse multinationals). Wegens meer en grotere vraag vanuit de klanten komen er nu posities vrij voor onder andere een .NET developer. Het bedrijf is goed met openbaar vervoer te bereiken. Functieomschrijving Je komt hier te werken in een team van 3 .NET developers en bent betrokken bij het gehele ontwikkelproces. Dus van idee naar ontwerp en van ontwikkeling tot testen en implementatie. Bij voorkeur ben je niet

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

Delphi developer

Functie Als Delphi developer ga jij aan de slag in een team met twee andere ervaren Delphi programmeurs waaronder de Hoofd programmeur. Als team zijn jullie verantwoordelijk voor de doorontwikkeling van jullie bestaande applicatie. Daarnaast zijn jullie verantwoordelijk voor het onderhouden van deze applicatie en het oplossen van eventuele bugs. Eisen - HBO werk en denk niveau; - Minimaal één jaar ervaring met Delphi; - Goede beheersing van de Nederlandse taal in woord en geschrift; - Jij bent zelfstandig, maar kan ook in team verband werken. Aanbod - €3000,-- €4000,- op basis van jouw kennis en ervaring; - 8% vakantiegeld;

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

SAP HANA Cloud Application Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12662 Introductie HANA Cloud Application Developer at a High Tech company. The company is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. This role is situated in the Big Data Analytics (BDA) Domain. The teams have mixture of young talent and senior specialists and have a

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale oplossingen van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen. Op dat moment komt je wil om te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas! Ook Junior Front-End Developer worden bij Coolblue?

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP Developer ga jij aan de slag met uitdagende software projecten. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Deze software bouw je vooral in PHP en specifiek Laravel. Dit framework kent dus geen geheimen voor jou. De software die jij gaat ontwikkelen is heel divers, van urenregistratiesystemen tot compleet geautomatiseerde tools. In deze veelzijdige functie ga jij je zeker niet vervelen, elke dag bestaat weer uit nieuwe uitdagingen. Bedrijfsprofiel Deze

Bekijk vacature »

C# .NET Backend Developer HBO Javascript

Samengevat: Deze werkgever is een professionele speler op gebied van IT en E-Commerce. Wil jij werken voor een e-commerce platform? Heb je ervaring met C#, Javascript en Scrum? Vaste baan: C# .NET Developer Backend E-Commerce 3.400 - 4.500 Backend Developer Wij ontwikkelen software voor E-Commerce toepassingen. Ons eigen Content Management systeem biedt een integrale oplossing met diverse ERP software. Onze systemen zijn vaak complex en omvangrijk en draaien bij grote organisaties. Maar ook kleine ondernemingen hebben steeds vaker behoefte aan een vlekkeloos werkende E-Commerce oplossing. Zij bieden een uitdagende werkomgeving met gezellige collega's. Je krijgt veel vrijheid en er is

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 »

C# Ontwikkelaar

In het kort Als C# .NET Core ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging

Bekijk vacature »

Full-stack developer

Als Full-stack developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Samen met je SCRUM team werk je aan zowel de front- als de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en echt het verschil te kunnen maken. Ons ontwikkelteam bestaat uit ruim 40 ontwikkelaars, testers, scrum

Bekijk vacature »

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »
Ozzie PHP

Ozzie PHP

12/02/2019 14:49:40
Quote Anchor link
Wat is tegenwoordig de beste manier om wachtwoorden te hashen? En welke algoritme te gebruiken?

Iemand wellicht een voorbeeldje?
 
PHP hulp

PHP hulp

14/05/2025 09:25:22
 
- Ariën  -
Beheerder

- Ariën -

12/02/2019 16:33:35
Quote Anchor link
Ikzelf gebruik password_hash die zelf bcrypt gebruikt. Maar er is nog meer mogelijk:

Quote:
The following algorithms are currently supported:

PASSWORD_DEFAULT - Use the bcrypt algorithm (default as of PHP 5.5.0). Note that this constant is designed to change over time as new and stronger algorithms are added to PHP. For that reason, the length of the result from using this identifier can change over time. Therefore, it is recommended to store the result in a database column that can expand beyond 60 characters (255 characters would be a good choice).
PASSWORD_BCRYPT - Use the CRYPT_BLOWFISH algorithm to create the hash. This will produce a standard crypt() compatible hash using the "$2y$" identifier. The result will always be a 60 character string, or FALSE on failure.
PASSWORD_ARGON2I - Use the Argon2i hashing algorithm to create the hash. This algorithm is only available if PHP has been compiled with Argon2 support.
PASSWORD_ARGON2ID - Use the Argon2id hashing algorithm to create the hash. This algorithm is only available if PHP has been compiled with Argon2 support.


Controleren moet je doen met password_verify
Gewijzigd op 12/02/2019 16:34:26 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

12/02/2019 17:11:03
Quote Anchor link
Ik begrijp dat dit belangrijk is, maar ik durf haast te zeggen dat dit lang niet het belangrijkste (of enige belangrijke ding) is.

Om de veiligheid van applicaties te waarborgen werk je met lagen. Het hashen van je wachtwoord is daar slechts één van, die meer garandeert dat iemand zijn/haar originele wachtwoord niet achterhaald kan worden dan dat dit de applicatie nu echt veiliger maakt.

Het zou bijvoorbeeld al meer helpen wanneer je afdwingt dat een wachtwoord aan bepaalde criteria zou moeten voldoen (lengte, karaters, case), en dat deze eens in de zoveel tijd veranderd zou moeten worden. In die zin maakt een ingewikkeld(er) hashing mechanisme je applicatie niet veiliger.

Er is ook geen "beste manier". Er is misschien wel een "beste (of op zijn minst goede/acceptabele) manier voor situatie X".
 
Ozzie PHP

Ozzie PHP

12/02/2019 17:51:18
Quote Anchor link
@Ariën

Thanks. Bedoel je dan deze? PASSWORD_BCRYPT


@Thomas

Ik snap dat er meer lagen zijn, maar ik wil specifiek weten wat de beste hashing methode is op dit moment. Bijvoorbeeld MD5 is geen aanrader.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/02/2019 18:04:32
Quote Anchor link
> Bijvoorbeeld MD5 is geen aanrader.
WAAROM niet :p.

Ik ken de redenen wel een beetje, en de "industrie" plaatst dit mechanisme in het verdomhoekje, maar als MD5 als hashingmethode een probleem vormt, wil dat dan niet zeggen dat er op een andere plek iets mis is?

Brute force: dan zit er geen limiet op het aantal inlogpogingen?
Collisions/toevalstreffers: wachtwoord te zwak?
Toegang tot database verkregen: ik denk dat het ontcijferen van wachtwoorden dan het minste van je problemen is.

> de beste hashing methode
Bestaat niet. Security is ook een tradeoff versus oa gebruikersgemak. Zo levert een hogere cost dan wellicht een betere versleuteling (?) op, maar wil je dan seconden langer wachten als je inlogt?

Je bent in je vraagstukken vaak op zoek naar "het beste" zonder dat je dit toepast op een concrete situatie.

Dit is zoiets als "wat is de beste manier om drukwerk op te bergen"? Who knows? Een kartonnen doos? Een gelakte eikenhouten boekenkast? Een vitrine met klimaatcontrole? Wat voor drukwerk betreft het uberhaupt? Een kopie van een meesterwerk met zeer beperkte oplage? Een antieke geillustreerde bijbel? De Donald Duck? Hoe kun je in hemelsnaam zo'n vraagstuk eenduidig beantwoorden?

Ik denk dat je veel te veel leunt op theorie, en te weinig op een praktische toepassing.
Gewijzigd op 12/02/2019 19:30:00 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

12/02/2019 19:53:08
Quote Anchor link
MD5 kent voor zover ik weet veel mogelijkheden tot collisions, waardoor het behoorlijk zwak is. Tot hoever weet ik zelf niet echt.

Zelf gebruik ik het niet voor wachtwoorden, en enkel voor plekken waarbij een unieke code van belang is. Zoals mijn CMS waarbij ik nieuwe en niet-opgeslagen nieuwsitems toch een tijdelijk ID meegeef voor het koppelen/uploaden van afbeeldingen.
 
Ozzie PHP

Ozzie PHP

12/02/2019 20:13:56
Quote Anchor link
@Aar

Kun je mijn vraag nog even beantwoorden?

@Thomas

Ik snap je wel, maar er bestaat ook zoiets als algemeen gangbaar. En MD5 is dat zeker niet. Ik denk / mag hopen dat je snapt wat ik bedoel. Ik wil gewoon een fatsoenlijke en veilige hashingmethode en of iemand dan een tiende van een seconde moet wachten om in te loggen, boeit me eerlijk gezegd geen @!w#@!. Het gaat erom dat het veilig is, en van MD5 (wat ik puur even als voorbeeldje gaf) is algemeen bekend dat dat niet meer als veilig wordt beschouwd. Ik vraag ook niet naar andere methodes van security, enkel naar wat een goede en gebruikelijke hashingmethode is ;-)
 
Rob Doemaarwat

Rob Doemaarwat

12/02/2019 20:31:30
Quote Anchor link
Volgens mij is het gewoon de bedoeling dat je password_hash / password_verify, en password_needs_rehash gaat gebruiken. Team-PHP zorgt er dan voor dat je altijd "de beste" hashing hebt (wat dat dan ook is). Het voorkomt in ieder geval dat ieder weer z'n eigen algoritmes moet knutselen die na een paar jaar zonder onderhoud / met nieuwe inzichten volledig achterhaald zijn.
 
- Ariën  -
Beheerder

- Ariën -

12/02/2019 20:39:48
Quote Anchor link
@Ozzie: Standaard gebruikt password_hash() bcrypt.
Als je PASSWORD_BCRYPT meegeeft aan de functie wordt er Blowfish Crypt gebruikt, maar de standaard Bcrypt is er enkel van afgeleid.
 
Ozzie PHP

Ozzie PHP

12/02/2019 21:46:59
Quote Anchor link
@Rob

Maar als je het overlaat aan het 'team' en niet expliciet een algoritme aangeeft, heb je wel een probleem als het team dat algoritme wijzigt. Dan kan niemand meer inloggen.

@Ariën

>> Als je PASSWORD_BCRYPT meegeeft aan de functie ...

Geef jij zelf PASSWORDT_BCRYPT mee aan de functie? Of gebruik je de default?
 
Rob Doemaarwat

Rob Doemaarwat

12/02/2019 22:20:30
Quote Anchor link
Daarom moet je na een succesvolle password_verify() ook even een password_needs_rehash() doen (zie example #1).
 
- Ariën  -
Beheerder

- Ariën -

12/02/2019 22:25:32
Quote Anchor link
Ozzie PHP op 12/02/2019 21:46:59:
@Rob

Maar als je het overlaat aan het 'team' en niet expliciet een algoritme aangeeft, heb je wel een probleem als het team dat algoritme wijzigt. Dan kan niemand meer inloggen.

@Ariën

>> Als je PASSWORD_BCRYPT meegeeft aan de functie ...

Geef jij zelf PASSWORDT_BCRYPT mee aan de functie? Of gebruik je de default?

Nee, ik gebruik de standaard.


Toevoeging op 12/02/2019 22:31:41:

Rob Doemaarwat op 12/02/2019 22:20:30:
Daarom moet je na een succesvolle password_verify() ook even een password_needs_rehash() doen (zie example #1).

Goed idee....
Maar wanneer zou de hash niet meer kloppen? Bij een wijziging van de PHP-versie of de cost?
Gewijzigd op 12/02/2019 22:31:59 door - Ariën -
 
Ozzie PHP

Ozzie PHP

12/02/2019 23:40:25
Quote Anchor link
@Aar

"As mentioned on the Password Hashing Predefined Constants and password_hash pages, the algorithm used by PASSWORD_DEFAULT is subject to change as different versions of PHP are released."

Anders gezegd, met de default optie (die jij dus gebruikt) kan een keer het algoritme veranderen. Dat zou dan inhouden dat niemand meer kan inloggen. Oeps ...
 
- Ariën  -
Beheerder

- Ariën -

12/02/2019 23:56:35
Quote Anchor link
En in dat geval lijkt die password_needs_rehash() erg handig ;-)
Weer wat geleerd.
 
Thomas van den Heuvel

Thomas van den Heuvel

13/02/2019 00:26:29
Quote Anchor link
> Het gaat erom dat het veilig is, en van MD5 (wat ik puur even als voorbeeldje gaf) is algemeen bekend dat dat niet meer als veilig wordt beschouwd.
Een verkeerd gebruik van welke methode dan ook is per definitie niet veilig. Gebruik maken van password_hash() en password_verify() maakt oplossingen ook niet automagisch "veilig". Dit is een complete misvatting. Stel dat jouw oplossing dit gebruikt, maar je query is vatbaar voor SQL-injectie, dan kan ik wel een wachtwoord + een hash verzinnen en meegeven zodat dit resultaat oplevert. Sterker nog, er zijn hele volksstammen die zo denken, en vervolgens het evangelie lopen te verkondigen met baggertutorials op YouTube.

> Ik vraag ook niet naar andere methodes van security, enkel naar wat een goede en gebruikelijke hashingmethode is ;-)
Actually, je vroeg (zoals vanouds?) weer naar de "beste" oplossing. Ik heb geen idee wat dit in jouw geval betekent.
 
Ozzie PHP

Ozzie PHP

13/02/2019 00:37:45
Quote Anchor link
@Aar

Ik denk dat die check niet nodig is als je zelf expliciet een algoritme kiest.

@Thomas

>> Een verkeerd gebruik van welke methode dan ook is per definitie niet veilig.

Dat klopt. Maar jij gaat nu uit van "als dan" situaties en dat kun je overal dan wel op toepassen. Je kunt in een heel veilige auto rijden, maar als je tijdens het rijden je autoportier wagenwijd openzet, kun je erop wachten dat je vroeg of laat uit de auto dondert ;-)

Als ik vraag wat een veilige auto is, dan zou een antwoord kunnen zijn "een Volvo vanwege een grote kreukelzone", en dan zit ik niet te wachten op / kan ik niet zoveel met een antwoord à la "geen enkele auto is veilig als je je gordel niet omdoet".

Ik hoop dat je een beetje begrijpt wat ik je probeer te zeggen. Ik snap dat een hashing methode op zichzelf geen unieke garantie biedt voor een veilige website. Dat was echter mijn vraag ook niet. Mijn vraag is wat heden ten dage wordt beschouwd als de beste manier om een wachtwoord te hashen. Niks meer en niks minder. En volgens mij valt daar best een concreet antwoord op te geven.
 
- Ariën  -
Beheerder

- Ariën -

13/02/2019 00:52:33
Quote Anchor link
@Ozzie: Volgens mij klopt het. Maar ik gebruik, zoals ik al zei, de standaard algoritme in PHP. Ik heb geen zin om die boel opnieuw te compileren :-P

Dan is er nog wat interessants...

En wat als je tussentijds switched van algoritme?
Stel je gebruikt nog md5 en je wilt leden zonder een password-reset een veiliger password geven?

Is het dan slim om in de ledentabel een veld aan te maken hoe het wachtwoord gehashed is (md5, crypt), en bij een oude onveilige encryptie dit na het succesvol inloggen het ingevoerde wachtwoord omzetten naar de veilige variant, en het record te flaggen met 'crypt' i.p.v. 'md5'? Of zijn er nog dingen om over na te denken?

Uiteraard lijkt het mij wel handig om niet eeuwig hashes van zwakke algoritmes te gebruiken in een inlogsysteem, en op dat moment de deur tijdelijk dicht doen totdat ze een nieuw wachtwoord hebben aangemaakt.
Gewijzigd op 13/02/2019 00:54:27 door - Ariën -
 
Ozzie PHP

Ozzie PHP

13/02/2019 01:42:32
Quote Anchor link
Het lijkt me dat ze niet een nieuw wachtwoord hoeven in te geven, maar dat je het bestaande wachtwoord opnieuw hasht en opslaat. Daar is die password_needs_rehash() volgens mij precies voor bedoeld. Die kan blijkbaar detecteren of het algoritme gewijzigd moet worden, en zo ja ... dan opnieuw genereren en opslaan.
 



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.