Wachtwoord hash

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack Developer TOTO

Do you want to work with the latest technologies on the development of new systems and applications? Get moving and strengthen Nederlandse Loterij as a Fullstack Developer TOTO. Thanks to your efforts, complex business critical applications are always running smoothly. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Fullstack Developer you score by: Taking ownership of the development cycle of an application in a large scale, high availability, geo redundant landscape Coaching your peer developers and safeguarding code quality Integrating the application with other components of the system using the available API’s Managing

Bekijk vacature »

.NET developer

Functie Als .NET developer werk jij samen in een multidisciplinair ontwikkel team met 1-2 Senior .NET developers, twee front-end developers, Data Scientists en één UX designer. Als team werken jullie aan het ontwikkelen van een Cloud based applicatie en aan het stabieler maken van deze applicatie. Ook unit testing gaat erg belangrijk worden in jouw nieuwe functie. Samen met de Senior .NET ontwikkelaar wordt jij verantwoordelijk voor het ontwikkelen van de API. Jullie werken met veel data en incidenteel komen er ook data vraagstukken en zullen er wat queries gedraaid moeten worden. Dit betekend dat jij veel gaat werken met

Bekijk vacature »

Junior Front end developer Onderwijssoftware

Functie Als Junior front end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van

Bekijk vacature »

Front-end Developer - React - Data Driven

Bedrijfsomschrijving Onze klant is een snelgroeiende organisatie die een data-driven inspectieapp op de markt hebben gebracht die nu al een aantal jaar door verschillende organisaties wereldwijd gebruikt wordt. Er zijn zo'n 6 mensen werkzaam bij dit bedrijf en ze zijn nu vooral op zoek naar een sterke front-end developer die wil gaan werken aan nieuwbouw applicaties en de uitbouw van de huidige applicaties. De reden dat ze zoeken is omdat er veel werk op komst is en ze hier de juiste capaciteit voor willen hebben. Er heerst hier een hele prettige sfeer waarin respect en eerlijke communicatie belangrijk is. Ook

Bekijk vacature »

Senior Full Stack developer

Bedrijfsomschrijving tbd Functieomschrijving Full Stack Java Development bij Randstad Groep Nederland (HQ) Er is een vacature in het Corporate Client Solutions (CCS) team. Dit team is met een ander team net begonnen aan het project ‘Grip op Inhuur’. Het doel van dit project is de tevredenheid van onze leveranciers te verhogen en de efficiëntie van onze administratie te verbeteren. Onderdeel daarvan is een ‘Mijn-omgeving’ voor ZZP’ers en leveranciers. Naast dit nieuwe project werkt het team ook aan het onderhoud en verbeteren van een digitaal vacature management systeem waarmee dagelijks vele vacatures worden voorzien. Het team ontwikkelt zo veel mogelijk zelf

Bekijk vacature »

.NET Developer

Functie omschrijving Ervaren .NET Developer gezocht! Wij zoeken een ervaren .NET developer die aan de slag gaat voor een softwarebedrijf in de regio Rhenen. In deze rol ben jij zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Daarnaast houdt jij je bezig met de nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en product specialisten om mooie producten te creëren. Bedrijfsprofiel Waar kom je te werken? Je komt te werken voor snelgroeiende softwareleverancier en allround dienstverlener. Klanten van deze

Bekijk vacature »

Laravel developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Full Stack C#.NET developer

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 »

Junior Low-code ontwikkelaar gezocht omgeving Arnh

Bedrijfsomschrijving Wij zijn een dynamisch IT-bedrijf dat zich richt op het stroomlijnen van bedrijfsprocessen en het creëren van ondersteunende applicaties. Onze kracht ligt in het combineren van zakelijk inzicht met IT-expertise via gestroomlijnde procesontwerpen en wendbare applicatieontwikkeling met behulp van Low-code technologieën. Als jonge professional krijg je de kans om samen te werken met een team van 15 deskundige collega's, verspreid over nationale en internationale locaties. We bieden je een leerzame omgeving waar je je vaardigheden kunt ontwikkelen en groeien in je rol als Low-code ontwikkelaar. Word jij onze nieuwe Junior Low-code Ontwikkelaar (OutSystems)? Versterk ons team en draag bij

Bekijk vacature »

Lasrobotprogrammeur/operator

Heb je interesse in trekkers en beschik je overvlijmscherpse precisie? Solliciteer dan op deze vacature! Als Lasoperator ben je vooral bezig met het maken van nieuwe lasrobotprogramma’s en het optimaliseren van bestaande programma’s, zowel online als offline (incl. het bedienen van de Lasrobots). Daarnaast draag je bij aan een optimaal rendement van de las robots. Verder heb je de volgende werkzaamheden: Het meewerken als operator c.q. Robotlassen niveau 2 (van complexe samenstellingen/halffabricaten), het om- en instellen van de diverse stations van lasmallen (productdragers), het afwerken van laswerk (verwijderen lasspetters en oxiden), het bewaken van de machineplanning (op bewerkingen) incl. de

Bekijk vacature »

Backend Developer Integraties API HBO REST

Samengevat: Deze werkgever is een IT-consultancy. Wil jij werken als Backend Developer Integraties? Heb jij kennis van gangbare berichtformaten? Vaste baan: Backend Developer Integraties API HBO €3.100 - €4.400 Zij bieden innovatieve oplossingen die bedrijven efficiënter en wendbaarder maken, waardoor onze klanten zich net zo snel kunnen ontwikkelen als de business van hen vraagt. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Deze werkgever staat open voor elke nieuwe trend. Onze systemen zijn groot en ingewikkeld. Hou jij van diepgang

Bekijk vacature »

PHP/Symfony developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Bergen op Zoom ben je als PHP/Symfony Developer niet alleen bezig met software ontwikkeling. Je bent buiten ontwikkeling ook continu bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Techstack: PHP, Symfony & mySQL. Jouw takenpakket ziet er als volgt uit: Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden

Bekijk vacature »

ERP Developer fleet managementsysteem

Wat ga je doen als ERP Developer fleet managementsysteem? Als ERP developer speel jij een belangrijke rol bij het doorvoeren van wijzigingen en verbeteringen binnen het fleet managementsysteem. Jouw expertise op het gebied van ERP systemen stelt jou in staat om de applicatie optimaal te laten functioneren en te blijven ontwikkelen. Als lid van het IT-team werk je nauw samen met andere developers en het business team om het fleet managementsysteem te integreren met andere systemen. Je bent verantwoordelijk voor het ontwikkelen van nieuwe functionaliteiten en het implementeren van verbeteringen op basis van de wensen en eisen van onze klanten.

Bekijk vacature »

Cloud Engineer

Ben jij een ervaren Cloud Engineer die complexe omgevingen kan overzien en wil je graag in vaste dienst werken bij een professioneel en kleinschalig bedrijf waar je een belangrijke rol kan spelen? Wij, IntelliMagic in Leiden, ontwikkelen specialistische IT monitoring software die we als SaaS oplossing verkopen aan grote bedrijven in Europa en de VS. We zijn een Nederlands bedrijf met een goede sfeer en met grote waardering voor de persoonlijke inbreng en kwaliteiten van onze medewerkers. Wij zoeken een ervaren Cloud Engineer met academisch denkniveau die verantwoordelijk wordt voor het beheer van de cloud infrastructuur voor onze Europese klanten.

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

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

29/03/2024 03:07:19
 
- 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.