I've tried doing this. One way is to create an Acrostic that is easy for the respondent to remember and reproduce (i.e. reliable) and very difficult to decode. For example:
What day of the month were you born? 21
What is the last letter of your mother's maiden name? Z
How many letters are there in your first name? 5
This person's acrostic = 21Z5. There are unlikely to be too many duplicates unless the sample is very large. Adding one other letter question (what is the second letter in your best friend's first name?) would reduce duplicates even further but implies that everyone has a best friend and requires that people will answer the same at T1 and T2 (i.e. good memory, and same best friend). If you get a high perfect match rate, you might be able to deduce most of the imperfect ones. For people with good cognition over short followup periods, four source questions combining numbers and letters with constant answers should produce pretty high perfect match rates.
The procedure Mark describes might be alright for some purposes, but if you have the code 21Z5 and you know the other information about respondent then it is not anonymous. Also, with only 31 days, some common letters for last names (which will vary by country), and some common number of letters for first name (3-8?), there will likely be multiples. Also, across surveys formal versus nicknames, and errors on other variables will occur. The more common method is to encrypt the identifying variable (I work in education so we use student id). Lots of freeware around for this (e.g., https://cran.r-project.org/web/packages/rcrypt/rcrypt.pdf).
the simplest way to do this is to forward a link from a random randomizer along with the email and create a question for them to put that value. And on the second he did that they are answering this questionnaire should solitaire that put the same value.
However for this they will have to save this value. What can be detrimental to the final sample is if many re-generate that number.
Just as there are some specialized companies for online questionnaires. I did some surveys using the survey monkey last year. However, I do not know if they have this tool you need. https://www.surveymonkey.com
Coding is the best, if the time between the pre and post is not long, a unique identifier may be used, this may be supported by system generated code. As the respondent submits , the code is generated automatically. There should be different types of questionnaire for each region or country. The code should be linked. with the region or country. You can then adopt Vincent's answer. You may also contact survey monkey for the coding system. I still believe that coding system is the best.