Hi

Thanks for all the replies.  For your information, we are going to store
passwords using SHA256.   I think I will go with the four additional column
approach as I proposed (in the current table) - since this need is a PCI
compliancy security requirement.  I can then pull all the data with one
query.

I don't envisage that we will need to record the last 20 passwords as a
example in the future - so if I need to expand in the future it should not
be too involved.

Cheers
Neil

On Tue, Jan 19, 2010 at 1:11 AM, Carlos Proal <carlos.pr...@gmail.com>wrote:

> On 1/18/2010 6:52 PM, Colin Streicher wrote:
>
>> On January 18, 2010 01:34:15 pm Tompkins Neil wrote:
>>
>>
>>> Hi
>>>
>>> I'm in the process of designing a login system to a secure web page using
>>> MySQL.  One of the features is we need to record and ensure that the user
>>> password is different from any of the last four passwords he/she has
>>> used.
>>>  I was thinking of create four fields called Password1, Password2,
>>>  Password3 and Password4 to record the old passwords.
>>>
>>> Is this a preferred method - or does anyone else have any recommendations
>>> ?
>>>
>>> Thanks,
>>> Neil
>>>
>>>
>>>
>> I'm not an awesome database designer, most of what I do is code related
>> stuff,
>> I think what I would do for this is 1. hash the password( sha256/512
>> whatever)
>> and then 2. store the hash in a string with delimiters. In that way, you
>> solve
>> 2 problems.
>> You can store as many as you want to because you can just check hashes to
>> make
>> sure it isn't the same, and second, you aren't storing passwords in plain-
>> text, which is a personal pet peeve.
>>
>>
>>
>
> Neil,
> As others appointed, having another table with old passwords is a good
> "design" solution, and can allow you to have more than 4 passwords on your
> history. But in fact your solution is the best solution for performance and
> is called "denormalization", this solution gives good performance because in
> 1 read you get all the passwords but has the limitation of be "fixed" to
> only 4 passwords (which is not so bad because you can add new columns as
> needed, you will never have 20 history passwords anyway, do you ?).
> So, thats the trade, design vs performance, you should pick the best for
> you.
>
> The solution proposed by Colin is another way to do it but, from the good
> design perspective is NOT a good solution, is what its called a "multivalued
> attribute" and all those should be avoided. But again, is up to you.
>
> Carlos
>
>
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/mysql?unsub=neil.tompk...@googlemail.com
>
>

Reply via email to