({{, (RefLink[EncryptFile, paclet:ref/EncryptFile])["password",file] 
generates an encrypted version of a file, using the specified password.}, {, (RefLink[EncryptFile, paclet:ref/EncryptFile])["password",source,target]
generates an encrypted version of source, putting the result in target.}, {, (RefLink[EncryptFile, paclet:ref/EncryptFile])[keyspec,source,…]
encrypts using the cryptographic key specification keyspec.}})

OpenersNotesSection(Spacer1)Details and Options

(RefLink[EncryptFile, paclet:ref/EncryptFile]) generates an encrypted file, suitable for decryption with (RefLink[DecryptFile, paclet:ref/DecryptFile]).

(RefLink[EncryptFile, paclet:ref/EncryptFile]) works with both files and cloud objects.

(RefLink[EncryptFile, paclet:ref/EncryptFile])[key,file] returns the name of the encrypted version of file.

(RefLink[EncryptFile, paclet:ref/EncryptFile])[key,(RefLink[CloudObject, paclet:ref/CloudObject])[…]] returns a new anonymous cloud object containing the encrypted version of the contents of the original cloud object.

The cryptographic key specification keyspec for (RefLink[EncryptFile, paclet:ref/EncryptFile])[keyspec,…] has the same form as for (RefLink[Encrypt, paclet:ref/Encrypt]).

(RefLink[EncryptFile, paclet:ref/EncryptFile]) has the following options:

The setting for (RefLink[Permissions, paclet:ref/Permissions]) affects only cloud objects newly created by (RefLink[EncryptFile, paclet:ref/EncryptFile])[key,(RefLink[CloudObject, paclet:ref/CloudObject])[…]], not cloud objects explicitly specified as targets.

With (RefLink[Permissions, paclet:ref/Permissions])->(RefLink[Automatic, paclet:ref/Automatic]), any permissions set will be given by (RefLink[$Permissions, paclet:ref/$Permissions]).

The setting for (RefLink[OverwriteTarget, paclet:ref/OverwriteTarget]) affects only files to be newly created by (RefLink[EncryptFile, paclet:ref/EncryptFile])[key,file] whose names would collide with existing files.

OpenersPrimaryExamplesSection(Spacer1)Examples  (10)

OpenersExampleSection0(Spacer1)Basic Examples  (4)

Write a string to the file tmp.txt:

WriteString["tmp.txt","Now is the time..."]

Encrypt the file tmp.txt using a password:

EncryptFile["my password","tmp.txt"]

Delete the original file:

DeleteFile["tmp.txt"]

Decrypt the encrypted file:

DecryptFile["my password","tmp.txt.mx"]

Read the decrypted file:

ReadString["tmp.txt"]

Delete the files used in this example:

DeleteFile[{"tmp.txt","tmp.txt.mx"}]

Encrypt a file containing an image, putting the result in a new file:

EncryptFile["my password",FindFile["ExampleData/rose.gif"],"codedrose.mx"]

Decrypt the encrypted file, again putting the result in a new file:

DecryptFile["my password","codedrose.mx","rose.gif"]

Import the decrypted file:

Import["rose.gif"]

Delete the files used in this example:

DeleteFile[{"codedrose.mx","rose.gif"}]

Create a cloud object:

CloudPut["Now is the time..."]

Encrypt the cloud object, getting back another cloud object:

EncryptFile["my password",%]

Decrypt the encrypted cloud object, getting back yet another cloud object:

DecryptFile["my password",%]

Get the contents of the file decrypted cloud object:

CloudGet[%]

Create an archive file from a directory:

CreateArchive[$InstallationDirectory<>"/Documentation/English/System/ExampleData/","example.zip"]

Encrypt the archive file:

EncryptFile["my password",%]

Delete the original archive:

DeleteFile["example.zip"]

Decrypt the encrypted archive:

DecryptFile["my password","example.zip.mx"]

Extract the archive into the current directory:

ExtractArchive["example.zip"];

Delete the extracted directory and intermediate files used in this example:

DeleteDirectory["ExampleData",DeleteContents->True]

DeleteFile[{"example.zip","example.zip.mx"}]

OpenersExampleSection1(Spacer1)Scope  (2)

Encrypt a file and put the result in a cloud object:

EncryptFile["my password",FindFile["ExampleData/rose.gif"],CloudObject[]]

Decrypt the cloud object and put the result into a local file:

DecryptFile["my password",%,"newrose.gif"]

Import the file:

Import[%]

DeleteFile["newrose.gif"]

Generate a key:

key=GenerateSymmetricKey[]

Encrypt using the key:

EncryptFile[key,FindFile["ExampleData/rose.gif"],"rose.gif.mx"]

Decrypt using the same key:

DecryptFile[key,%]

DeleteFile[{"rose.gif","rose.gif.mx"}]

OpenersExampleSection2(Spacer1)Options  (2)

OpenersExampleSubsection0(Spacer1)Permissions  (1)

Create a cloud object:

CloudPut["Now is the time..."]

Encrypt the cloud object, setting the permissions of the resulting cloud object to public:

EncryptFile["my password",%,Permissions->"Public"]

The encrypted cloud object is now publicly readable:

Options[%,Permissions]

OpenersExampleSubsection1(Spacer1)OverwriteTarget  (1)

Write a string to the file tmp.txt:

WriteString["tmp.txt","Now is the time..."]

Encrypt the file, getting back the tmp.txt.mx:

EncryptFile["my password","tmp.txt"]

This attempts to write over tmp.txt.mx:

EncryptFile["my password","tmp.txt"]

With (RefLink[OverwriteTarget, paclet:ref/OverwriteTarget])->(RefLink[True, paclet:ref/True]), (RefLink[EncryptFile, paclet:ref/EncryptFile]) overwrites tmp.txt.mx:

EncryptFile["my password","tmp.txt",OverwriteTarget->True]

DeleteFile[{"tmp.txt","tmp.txt.mx"}]

OpenersExampleSection3(Spacer1)Properties & Relations  (2)

Write a string to the file tmp.txt:

WriteString["tmp.txt","Now is the time..."]

Encrypt the file tmp.txt using a password:

EncryptFile["my password","tmp.txt"]

Importing the file written by (RefLink[EncryptFile, paclet:ref/EncryptFile]) gives an (RefLink[EncryptedObject, paclet:ref/EncryptedObject]):

Import[%]

Clean up the files used:

DeleteFile[{"tmp.txt","tmp.txt.mx"}]

Write a string to the file tmp.txt:

WriteString["tmp.txt",Range[1000]]

Encrypt the file:

EncryptFile["my password","tmp.txt"]

The original and encrypted files are about the same size:

{FileByteCount["tmp.txt"],FileByteCount["tmp.txt.mx"]}

Clean up the files used:

DeleteFile[{"tmp.txt","tmp.txt.mx"}]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[DecryptFile, paclet:ref/DecryptFile])  ▪  (RefLink[Encrypt, paclet:ref/Encrypt])  ▪  (RefLink[SymmetricKey, paclet:ref/SymmetricKey])  ▪  (RefLink[GenerateSymmetricKey, paclet:ref/GenerateSymmetricKey])  ▪  (RefLink[GenerateAsymmetricKeyPair, paclet:ref/GenerateAsymmetricKeyPair])  ▪  (RefLink[Encode, paclet:ref/Encode])  ▪  (RefLink[CreateArchive, paclet:ref/CreateArchive])  ▪  (RefLink[AuthenticationDialog, paclet:ref/AuthenticationDialog])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Cryptography, paclet:guide/Cryptography])}, {▪(RefLinkPlain[File Operations, paclet:guide/FileOperations])}})}})