This API uses the PBKDF2 specification with HMACSHA512 as the underlying pseudo random function (PRF) to perform the salted hashing over a specified number of instances to eliminate the feasibility of rainbow table attacks & drive up the computing cost of generating said tables, this is known as key stretching.
This API also provides the capability to create BIG crypto random salt strings, because the BIGGER & more RANDOM your salt, the better! (anti-rainbow tables)
I was going to use Microsofts Rfc2898DeriveBytes(cb) implementation but after learning that it is using HMACSHA1 as the underlying PRF, I decided to modernise this & implement PBKDF2 with HMACSHA512 instead (Stronger against GPUs)
Get binaries here but for source code please use the PWDTK.NET repo on GitHub which you can clone from here: https://github.com/Thashiznets/PWDTK.NET.git
Please consider donating (5th button above) if you find PWDTK.NET useful!
Package AVAILABLE on NuGet!!!
Thanks - Ian
Features
- Crypto Randomly Generate Salt
- Password Policy Integration
- PBKDF2 implementation using HMACSHA512 as the underlying PRF
- Control resource usage vs key stretching by supplying iteration count as per PBKDF2 spec
- Code open source and available for peer review by security experts\cryptographers
- Uses UTF-8 encoding to support non English characters, better than implementations using ASCII
- Created using instructions for PBKDF2 standard here: http://www.ietf.org/rfc/rfc2898.txt
- Ability to call Rfc2898.PBKDF2(P,S,c,dkLen) to derive encryption keys of your specific size
- Source code includes sample GUI with common usage implemented
License
Public DomainFollow PWDTK.NET
User Reviews
-
Great library to help insure a quality implementation of encrypting passwords.
-
It's an easy to use and stable, reliable implementation. We are using this in a production environment with no problems till now.