Wachtwoord hash

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Creatieve Junior Allround .NET (Web) developer voo

Onze opdrachtgever is een zeer snel groeiend en internationaal Full-service Marketing Bureau in Maastricht. Voor deze opdrachtgever zoeken we een leergierige .Net (web-) developer die passie heeft voor het vak. Sinds 2 jaar is onze opdrachtgever zich volledig gaan richten op online marketing en sindsdien is er geen houden meer aan. Bij onze opdrachtgever heerst een ontspannen haast familiare sfeer waarbij iedereen elkaar kent en nauwe samenwerking en wederzijds respect leiden tot de meest fraaie producten. Momenteel zijn er zo’n 40 mensen werkzaam verspreidt over verschillende disciplines / teams. Het team waarin jij terecht zal komen bestaat momenteel uit 4

Bekijk vacature »

Dedicated Medior+/Senior backend C#.NET developer

Dit bedrijf is een maatwerk software ontwikkelaar voor voornamelijk grote klanten. Hierbij kun je denken aan spelers in o.a. de telecom sector, maar ook in de bouw. Haar klanten hebben sterk uiteenlopende wensen wat software betreft waardoor je veel variatie zal vinden in zowel diepgang qua materie als toe te passen technieken. Naast grootschalige platforms en applicaties worden er ook dikwijls kleinere projecten opgeleverd zoals bijvoorbeeld e-commerce websites. Een voorbeeld van een recentelijk afgerond project is de ontwikkeling van een groot planningsplatform dat in verschillende niche’s makkelijk inzetbaar is. Ze hebben dit volledige proces begeleid. Denk hierbij aan het opzetten

Bekijk vacature »

PHP Ontwikkelaar voor grootschalige webportals (to

Ontwikkel je graag complexe webshops, webportals en websites middels PHP en Magento waarbij nieuwe technieken en innovatieve ideeën belangrijk zijn? Werk je graag bij een vooruitstrevend echt Brabants bedrijf? Functieomschrijving Ontwikkel je graag complexe webshops, webportals en websites middels PHP en Magento waarbij nieuwe technieken en innovatieve ideeën belangrijk zijn? Werk je graag bij een vooruitstrevend echt Brabants bedrijf? Reageer dan nu! Het ontwikkelen van webshops, websites en webportals voor externe klanten middels PHP / Magento; Het zelf bedenken hoe je iets het beste kunt ontwikkelen en indien nodig het opstellen van een ontwerp hiervoor (requirements komen via het ticketsysteem);

Bekijk vacature »

Webdeveloper voor een nieuwe applicatie met Angula

Functieomschrijving Wil jij werken aan een nieuwbouw project waarbij je zelf de tools en technieken mag kiezen? Lees dan snel verder! Deze organisatie wil hun front-end flexibel en crossplatform laten ontwikkelen. Er wordt op dit moment onderzoek gedaan naar de technieken die gebruikt worden bij o.a. Slack en Spotify, bij deze apps is gebruik gemaakt van Electron (http://electron.atom.io/) en Angular. Bij een moderne webapplicatie wordt gebruik gemaakt van javascript, daarom worden er diverse javascript frameworks onderzocht. Hierbij wordt ook onderzocht of er gewerkt gaat worden met Angular of Angular 2.0. Verder worden ook andere opties bekeken, waaronder Node.js, Reajct.js of

Bekijk vacature »

Business Intelligence Ontwikkelaar

Binnen topklinisch ziekenhuis Medisch Spectrum Twente in Twente bestaat een vacature voor de functie van Business Intelligence Ontwikkelaar binnen de stafafdeling Financiën en Informatievoorziening. Heb jij interesse? Lees dan snel verder! Functie omschrijving Op het gebied van business intelligence staat MST voor een mooie maar ook ingewikkelde uitdaging. Het veranderende zorglandschap, de principes van VBHC en de verdere inzet op digitalisering maken dat MST zich nog meer wil ontwikkelen als een data-gedreven organisatie. Een organisatie waarbinnen continue verbeteren centraal staat. Een professionele ondersteuning van BI, die aansluit bij de eisen en wensen van de business, is een noodzaak om deze

Bekijk vacature »

Gouda / PHP Developer / Symfony

Voor een softwareontwikkelbedrijf nabij Gouda ben ik op zoek naar een PHP Developer. Takenpakket Het team waarin je terecht komt bestaat uit ontwikkelaars en strategisch denkers. Als team worden er apps, web apps en klantenportalen ontwikkeld met behulp van de meest recente technieken. Als PHP Developer werk je binnen het SCRUM-team met ervaren developers aan technische projecten en productontwikkeling voor de planning software van het bedrijf. Je takenpakket is divers en verdiepend: van technische consultancy opdrachten voor klanten tot het bepalen van de software architectuur, het automatisch tests schrijven tot het bouwen en documenteren. Per project weeg je af welke

Bekijk vacature »

Medior: Ontwikkelen in PHP met kennis van Drupal

Dit jonge, maar snelgroeiend bedrijf is al 3 jaar actief op de markt met een specifieke specialisatie waarin zij gespecialiseerd zijn. Ze hebben een databank voor bedrijven en organisaties ontwikkeld waarin alle kennis van de organisatie wordt opgenomen. Dit maakt het voor elke werknemer en gebruiker van de databanken gemakkelijker en efficiënter om het werk te doen. Op deze wijze voorkom je dat gedane werk weer opnieuw wordt gedaan, waardoor dat veel tijd en ook geld bespaard. Momenteel is het bedrijf nog alleen actief binnen Nederland. Door de snelle groei verwachten ze op een langer termijn ook op internationaal actief

Bekijk vacature »

Medior C# Developer (2+ jaar ervaring) met MBO ach

Één van de grotere detacheerders van ons land (400 FTE) heeft op basis van credits bij grote spelers in de bancaire sector, overheid en diverse multinationals, ruimte weten te creëren om ook de developers zonder fraaie vooropleiding toegang te verschaffen. Men is er nuchter en ondanks de omvang van de organisatie is men meer gericht op het dragen van verantwoordelijkheid, dan dat er sprake is van een sterke hiërarchie. Hoewel de sectoren soms anders doen denken is men zich bewust van het feit dat een developer wel belangrijk werk wil doen, maar niet altijd even belangrijk gekleed hoeft te gaan.

Bekijk vacature »

Java Developer / lease-auto / projecten / salaris

Vind je het leuk om je te verdiepen in technische integratie-vraagstukken die veel uitzoekwerk vergen en waarbij je met nieuwe technieken werkt? Wil je graag bij een organisatie werken waar je geen nummer bent en die goede arbeidsvoorwaarden heeft? Functieomschrijving Vind je het leuk om je te verdiepen in technische integratie-vraagstukken die veel uitzoekwerk vergen en waarbij je met nieuwe technieken werkt? Wil je graag bij een organisatie werken waar je geen nummer bent en die goede arbeidsvoorwaarden heeft? Reageer dan nu! Het koppelen van systemen met elkaar voor data verrijking waar vervolgens business-apps en dashboards op worden gebouwd middels

Bekijk vacature »

Java Developer

Durf jij mee te delen in het succes van de no. 1 dienstverlener in Nederland op het gebied van IT? Wat kun je? Die vraag stelt ieder bedrijf dat op het punt staat iemand aan te nemen. Wie ben je? Die vraag stelt Sogeti meteen daarna. We vinden het belangrijk dat je bij ons past. Vooral qua mentaliteit. Een professional van Sogeti is namelijk geen gemiddelde professional. Het is er een met een aantal uitgesproken eigenschappen. Gedreven. Resultaatgericht. En niet snel tevreden. Wat niet wil zeggen dat je nooit met hem of haar kunt lachen. Integendeel. Plezier hoort wat ons

Bekijk vacature »

Embedded Developer, Amsterdam, smart mobility star

Embedded Developer needed for smart mobility start-up in Amsterdam that are scaling rapidly! The Embedded Developer will be strong with C programming and Micro-controllers. You will be joining a highly skilled and passionate team of 3 Embedded Engineers, Embedded Testers, Mobile Developers and more! Skills as Embedded Developer: Pure C (3+ years experience) Micro-controller programming knowledge Good debugging skills TDD C++ is beneficial Ideally some automative industry expereince bachelor degree ideal, comp science, electrical engineer The Embedded Developer will be joining an international environment, made up of 20 different nationalities working together to create greener, cleaner cities making petrol transportation

Bekijk vacature »

.NET Developer Eigen Software 3.000 - 4.100

Functieomschrijving NET Developer ICT 3.000 - 4.100 .NET Developer Voor de vacature als .NET Developer Amstelveen ICT ga je het volgende doen: Als .NET Developer heb je de verantwoordelijkheid voor het ontwerpen en ontwikkelen van de fundamentele architectuur die bedrijfsactiviteiten ondersteunen. Je creëert en ontwikkelt testbare API's en services die worden gebruikt door het web, mobiele en desktop klanten. Je werkt in een omgeving die cloud services uitbuit. Je werkt samen in een team om de specificatie-eisen vast te stellen, analyses, engineering en planning uit te voeren. Je onderzoekt en geeft verbeterpunten op het gebied van architectuurontwerp. Ter versterking van

Bekijk vacature »

Ervaren (3 – 7 jaar) PLC Programmeur (Siemen

Het bedrijf is als totaaloplosser een vertrouwde speler onder grote en kleine bedrijven in binnen en buitenland. Omwille van haar eerlijke benadering, goede service, kwalitatieve oplossingen en brede aanbod in diensten (maatwerk applicaties, PLC, Cloud-diensten, beheer) weet zij haar klanten én eigen personeel te binden voor de lange termijn. Het bedrijf kent een haast familiale sfeer, is open en hartelijk en zet graag in op verantwoordelijkheidsgevoel. Iets wat zich voor haar collega’s vertaald in een hoge mate van vrijheid. Functie-omschrijving De Medior of Senior PLC programmeur waar men naar opzoek is zal het huidige team van 3 ervaren PLC programmeurs

Bekijk vacature »

Developer / lease-auto / integratie / salaris tot

Vind je het leuk om je te verdiepen in technische integratie-vraagstukken die veel uitzoekwerk vergen en waarbij je met nieuwe technieken werkt? Wil je graag bij een organisatie werken waar je geen nummer bent en die goede arbeidsvoorwaarden heeft? Functieomschrijving Vind je het leuk om je te verdiepen in technische integratie-vraagstukken die veel uitzoekwerk vergen en waarbij je met nieuwe technieken werkt? Wil je graag bij een organisatie werken waar je geen nummer bent en die goede arbeidsvoorwaarden heeft? Reageer dan nu! Het koppelen van systemen met elkaar voor data verrijking waar vervolgens business-apps en dashboards op worden gebouwd middels

Bekijk vacature »

Vacature : Medior PHP Developer

Dit bedrijf is meer dan 15 jaar geleden opgericht. Zij waren de eerste speler op de markt in hun branche met een dergelijke specialisatie. Zij bieden verschillende softwarepakketten en verschillende platforms aan scholen en studenten om daar vanuit ondersteuning te bieden in de begeleiding in huiswerk, opdrachten en bijles. Op dit moment hebben ze meerdere vestigingen door het land en zijn ze internationaal actief. Op dit moment hebben zij 4 Developers in dienst. Ondanks het feit dat ze zich in een snelle markt bevinden met meerdere actieve spelers, weten ze hun sterke marktpositie te behouden. Dit komt voornamelijk door de

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

15/02/2019 21:19:57
 
- 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.