A method for securely transferring a data object from a source application to a destination application on a computing device, the method comprising: providing a source application and a destination application on a computing device, the source and destination applications each having original, post-compile object code; modifying, using at least one processor operatively coupled with a memory, the original object code of the source application to create first replacement object code for the source application; modifying, using the at least one processor operatively coupled with the memory, the original object code of the destination application to create second replacement object code for the destination application; transferring, from the source application to the destination application, a data object that is encrypted with an object data protection key, wherein the object data protection key is encrypted with a source application key; retrieving, by the first replacement code of the source application, a source application key that is associated with the source application; decrypting, by the first replacement code of the source application, the object data protection key with the retrieved source application key; encrypting, by the first replacement code of the source application, the object data protection key with a data-sharing key or a destination application key, the destination application key associated with the destination application; transferring the object data protection key that is encrypted with the data-sharing key or destination application key to the destination application; decrypting, in the second replacement code of the destination application, the object data protection key that is encrypted with the data-sharing key or destination application key; decrypting, in the second replacement code of the destination application, the object data using the unencrypted object data protection key. providing a source application and a destination application on a computing device, the source and destination applications each having original, post-compile object code; modifying, using at least one processor operatively coupled with a memory, the original object code of the source application to create first replacement object code for the source application; modifying, using the at least one processor operatively coupled with the memory, the original object code of the destination application to create second replacement object code for the destination application; transferring, from the source application to the destination application, a data object that is encrypted with an object data protection key, wherein the object data protection key is encrypted with a source application key; retrieving, by the first replacement code of the source application, a source application key that is associated with the source application; decrypting, by the first replacement code of the source application, the object data protection key with the retrieved source application key; encrypting, by the first replacement code of the source application, the object data protection key with a data-sharing key or a destination application key, the destination application key associated with the destination application; transferring the object data protection key that is encrypted with the data-sharing key or destination application key to the destination application; decrypting, in the second replacement code of the destination application, the object data protection key that is encrypted with the data-sharing key or destination application key; decrypting, in the second replacement code of the destination application, the object data using the unencrypted object data protection key.