1. A method of sharing data, the method comprising: receiving, at a first computer, information identifying data to be shared; receiving, at the first computer, a first token, the first token generated prior to the receiving the information identifying the data to be shared, the first token comprising an encryption key; encrypting, by the first computer, the data to be shared using the encryption key to generate encrypted data; causing, by the first computer, the encrypted data to be stored at a location; receiving, at the first computer or at a second computer, a second token generated prior to the receiving the information identifying the data to be shared, the second token comprising the encryption key and a location identifier associated with the location; accessing, by the first computer or by the second computer, the encrypted data using the location identifier and the encryption key determined from the second token; decrypting, by the first computer or by the second computer, the encrypted data using the encryption key determined from the second token to produce the data; and enabling access to the data.