The way I had
thunk it, it would need to be both unique and
reversable.
Nope, don't need to. When you add an email address to the database,
calculate the MD5 hash and store that with it. Make sure you've got
indices on the table for both the hash and the address. When some
user uses the form you get the hash back as an argument, form field,
whatever. Look it up in the table and you get the cleartext address.
I think the point of his original proposal was to be able to implement
this without a database, just a CGI script.