A method for secure data storage and delivery, comprising: a) receiving, through a network, a file uploaded by a user via a data storage website or a data storage application that is being executed by a user device; b) generating a hash value for the uploaded file by applying a hash function to electronic data of the uploaded file; c) splitting the uploaded file into a plurality of constituent files, and generating a hash value for each file of the plurality of constituent files; d) encrypting each file of the plurality of constituent files using one or more predetermined or user selected encryption keys to generate a plurality of encrypted files, and storing the plurality of encrypted files in at least one storage location; e) generating transaction information including at least the hash value of the uploaded file and the hash values of the plurality of constituent files and providing the transaction information to a current block in a blockchain; f) upon receipt of a file retrieval request from the user or another user, retrieving the plurality of encrypted files from the at least one storage location, and decrypting each file of the plurality of encrypted files using the one or more predetermined or user selected encryption keys to generate a plurality of decrypted files; g) generating a hash value for each of the plurality of decrypted files and determining whether the hash values of the plurality of decrypted files match the hash values of the plurality of constituent files stored in the blockchain; h) if the hash values of the plurality of decrypted files match the hash values of the plurality of constituent files, combining the plurality of decrypted files to generate a recombined file; i) generating a hash value for the recombined file and determining whether the hash value for the recombined file matches the hash value for the uploaded file stored in the blockchain; and j) if the hash value for the recombined file matches the hash value for the uploaded file, providing the recombined file to the user or the other user, generating additional transaction information including at least the hash value of the recombined file, and providing the additional transaction information to a current block in the blockchain, wherein a cloud-based server is configured to perform operations of a) - j). a) receiving, through a network, a file uploaded by a user via a data storage website or a data storage application that is being executed by a user device; b) generating a hash value for the uploaded file by applying a hash function to electronic data of the uploaded file; c) splitting the uploaded file into a plurality of constituent files, and generating a hash value for each file of the plurality of constituent files; d) encrypting each file of the plurality of constituent files using one or more predetermined or user selected encryption keys to generate a plurality of encrypted files, and storing the plurality of encrypted files in at least one storage location; e) generating transaction information including at least the hash value of the uploaded file and the hash values of the plurality of constituent files and providing the transaction information to a current block in a blockchain; f) upon receipt of a file retrieval request from the user or another user, retrieving the plurality of encrypted files from the at least one storage location, and decrypting each file of the plurality of encrypted files using the one or more predetermined or user selected encryption keys to generate a plurality of decrypted files; g) generating a hash value for each of the plurality of decrypted files and determining whether the hash values of the plurality of decrypted files match the hash values of the plurality of constituent files stored in the blockchain; h) if the hash values of the plurality of decrypted files match the hash values of the plurality of constituent files, combining the plurality of decrypted files to generate a recombined file; i) generating a hash value for the recombined file and determining whether the hash value for the recombined file matches the hash value for the uploaded file stored in the blockchain; and j) if the hash value for the recombined file matches the hash value for the uploaded file, providing the recombined file to the user or the other user, generating additional transaction information including at least the hash value of the recombined file, and providing the additional transaction information to a current block in the blockchain,