Nothing useful for the purpose being discussed. That's why I apologized for being pedantic. Hehe
On Mon, Jun 2, 2008 at 11:45 PM, William Conlon <[EMAIL PROTECTED]> wrote: > not at all. But are there any provably perfect one-way hashes that are > computationally practical? > > On Jun 2, 2008, at 10:37 PM, Jonah Simpson wrote: > > A perfect hash is one to one and onto. md5 has been demonstrated to not be > one-to-one, and therefore not perfect. > > Also, depending on implementation, md5 hash may be used to construct the > uuid. In reality, the likelihood of colliding uuid is probably about the > same as colliding md5 (very small). But don't quote me on that, I'd hate to > have to provide empirical evidence. > > Sorry for being pedantic and for continuing down this double off-topic > rabbit hole. ; > > > On Mon, Jun 2, 2008 at 11:14 PM, William Conlon <[EMAIL PROTECTED]> wrote: > >> Yes. A HASH is NOT one-to-one and ONTO; it's merely one-way. >> The likelihood of a Hash collision may be small, but it's not zero. >> >> On Jun 2, 2008, at 10:09 PM, Ben Johansen wrote: >> >> Wait a second! >> are you saying that if i have an auto increment uid field that will have a >> constant changing value, that md5 is going to produce duplicates? >> >> Ben >> >> On Jun 2, 2008, at 10:04 PM, William Conlon wrote: >> >> Is there a point to this exercise? >> >> the autoincrement record_uid == last_insert_id is unique. >> MD5(last_insert_id()) is: >> 1) not unique -- there can be a hash collision >> 2) subject to replay attack >> >> >> If the point is to convert the record_uid so you can expose it in a web >> app, why not use ENCODE/DECODE on (record_uid)? >> >> >> >> --bill >> >> >> On Jun 2, 2008, at 9:43 PM, Robert Garcia wrote: >> >> Just thinking.... >> I know that last_insert_id() is SESSION specific. So it only applies to >> the session of a connection. Could there be another function, that gets the >> last insert id, with a global scope? I know MSSQL has this, in session, and >> global scope. I also saw this somewhere: >> >> If you want store the last id for use in multiple insert statements: >> >> create table person ( >> id bigint not null primary key auto_increment, >> name char(100) not null >> ); >> insert into person set name = 'Joe'; >> select @id:=id as id from class where id = last_insert_id(); >> insert into some_other_table set person_id = @class_id; >> insert into yet_another_table set person_id = @class_id; >> >> -- >> >> Robert Garcia >> President - BigHead Technology >> VP Application Development - eventpix.com >> 13653 West Park Dr >> Magalia, Ca 95954 >> ph: 530.645.4040 x222 fax: 530.645.4040 >> [EMAIL PROTECTED] - [EMAIL PROTECTED] >> http://bighead.net/ - http://eventpix.com/ >> >> On Jun 2, 2008, at 7:49 PM, Ben Johansen wrote: >> >> this one was interesting, >> >> at first look you would think you could do >> >> -on before insert trigger >> begin >> set NEW.record_uid_hash = MD5(NEW.record_uid); >> end >> >> and in fact I was able to get that trigger to save, but each run yielded >> the same hash value. >> so apparently it was hashing an empty value, because the auto-increment >> values is not in the NEW yet >> >> also under navicat I found that if you get an error (trigger not defined) >> when defining a trigger all the info will remain on the screen, but the >> trigger will be gone for that edit session you have to copy the trigger >> content into the buffer and then close and then restart the trigger define >> process. >> >> That said, I found that I tried LAST_INSERT_ID() >> >> -on before insert trigger >> begin >> declare vHashValue varchar(60); >> set vHashValue = md5(convert(LAST_INSERT_ID(),CHAR)); >> set NEW.record_uid_hash = vHashValue; >> end >> >> but the LAST_INSERT_ID() i just that the last successful insert into table >> with autoincrement >> so this proved fruitless, and in looking thru the docs there is apparently >> now way in a function to get the next auto increment value. >> >> so in looking at what is needed and that is just unique md5 hash to be >> used as a cross-reference to the row id and needing to be unique >> I came up with this. >> >> -on before insert trigger >> begin >> set NEW.record_uid_hash = MD5(UUID()); >> end >> >> doing the md5 on uuid takes the big uuid down to a smaller 32 char md5 >> >> Ben >> >> >> On Jun 2, 2008, at 4:18 PM, Dan Stein wrote: >> >> I am new to using MYSQL usually use MSSQL. >> I have a table called record >> >> pk is record_uid (auto increments) >> >> there is a column called record_uid_hash >> >> this is a MD5 of record_uid >> >> I want to create a trigger so when a new record is created the MD5 of the >> record_uid is entered into the row. >> >> MD5(record_uid) >> >> I can't seem to get the syntax correct. >> >> I use NAVACAT to admin the DB I am getting a message saying no such >> trigger. >> >> Any help would be appreciated. >> >> Dan >> >> -- >> Dan Stein >> FileMaker 7 Certified Developer >> Digital Software Solutions >> 799 Evergreen Circle >> Telford PA 18969 >> Land: 215-799-0192 >> Cell: 610-256-2843 >> FMP, WiTango, EDI,SQL 2000, MySQL, PHP >> [EMAIL PROTECTED] >> www.dss-db.com >> >> "The love of one's country is a splendid thing. But why should love stop >> at the border? " >> >> Pablo Casals >> >> >> >> >> ________________________________________________________________________ >> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf >> >> >> ________________________________________________________________________ >> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf >> >> >> ________________________________________________________________________ >> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf >> >> >> ________________________________________________________________________ >> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf >> >> >> ________________________________________________________________________ >> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf >> >> >> ________________________________________________________________________ >> TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf >> >> > ________________________________________________________________________ > TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf > > > ________________________________________________________________________ > TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf > > ________________________________________________________________________ TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
