Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>First of all MD5 is considered insecure for many reasons, first of all, rainbow tables for md5 are enormous by now, and probably cover most of the hash space. Second, there are known attacks that allow you to create hash collisions (to disguise other data in the manner which will produce the same md5 output). Third its 128bits, for today its short. </p> <p>Now back to your question, if you are not hosting any security-critical app, you do not store any private data, medical data, or any other "country law controlled" data, you are good with md5. Going into your algorithm, it's not insecure, but it's not super secure either, its your choice. Only thing you should add is freshness, that is some sort of timestamp telling you the validity period of your message. Secondly, your algorithm does not offer a replay protection :), if user will use this link once and leave it in browser, attacker may use this link again to reset this password. It's pretty serious flaw. So you might want to fix it.</p> <p>But I want to tell you some other thing. DO NOT USE CRYPTO IF IT IS NOT ABSOLUTELY NECESSARY! My humble request. Your password resetting scheme can be easily implemented without crypto and with replay protection, and far more security. All you need to do is add an additional columns to your table "pw_reset_hash" and "reset_validity", and populate them with RANDOM number, and valid date. Issue a user a random number, and clear the fields after it's used, check for validity beforehand. And voila :) Since it's random its probably more secure than any hashing algorithm. But use a secure PRNG.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload