1. A method for encrypting data, comprising: receiving, using a hardware processor, a request to encrypt the data; retrieving a workgroup key associated with the data; generating a file-level key based on unique information associated with the data and the workgroup key, wherein the data is encrypted based on the file-level key; receiving a request from an entity to access the encrypted data, wherein the entity is not a member of a workgroup associated with the workgroup key; and sharing the file-level key with the entity.