<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://script.spoken-tutorial.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Python-for-Automation%2FC2%2FFile-Encryption-and-Decryption%2FEnglish</id>
		<title>Python-for-Automation/C2/File-Encryption-and-Decryption/English - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://script.spoken-tutorial.org/index.php?action=history&amp;feed=atom&amp;title=Python-for-Automation%2FC2%2FFile-Encryption-and-Decryption%2FEnglish"/>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Encryption-and-Decryption/English&amp;action=history"/>
		<updated>2026-04-29T00:22:38Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Encryption-and-Decryption/English&amp;diff=56711&amp;oldid=prev</id>
		<title>Madhurig at 07:49, 27 November 2024</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Encryption-and-Decryption/English&amp;diff=56711&amp;oldid=prev"/>
				<updated>2024-11-27T07:49:23Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Encryption-and-Decryption/English&amp;amp;diff=56711&amp;amp;oldid=56700&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Madhurig</name></author>	</entry>

	<entry>
		<id>https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Encryption-and-Decryption/English&amp;diff=56700&amp;oldid=prev</id>
		<title>Nirmala Venkat: Created page with &quot;  &lt;div style=&quot;margin-left:1.27cm;margin-right:0cm;&quot;&gt;&lt;/div&gt; {| border=&quot;1&quot; |- || '''Visual Cue''' || '''Narration''' |- |- style=&quot;border:1pt solid #000000;padding-top:0cm;paddin...&quot;</title>
		<link rel="alternate" type="text/html" href="https://script.spoken-tutorial.org/index.php?title=Python-for-Automation/C2/File-Encryption-and-Decryption/English&amp;diff=56700&amp;oldid=prev"/>
				<updated>2024-11-13T10:04:06Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;  &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; {| border=&amp;quot;1&amp;quot; |- || &amp;#039;&amp;#039;&amp;#039;Visual Cue&amp;#039;&amp;#039;&amp;#039; || &amp;#039;&amp;#039;&amp;#039;Narration&amp;#039;&amp;#039;&amp;#039; |- |- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;paddin...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|| '''Visual Cue'''&lt;br /&gt;
|| '''Narration'''&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
'''Welcome'''&lt;br /&gt;
|| Welcome to the Spoken Tutorial on '''&amp;quot;File Encryption and Decryption&amp;quot;.'''&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.206cm;padding-right:0.191cm;&amp;quot;&lt;br /&gt;
|| Show slide: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Learning Objectives'''&lt;br /&gt;
|| In this tutorial, we will learn to&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Encrypt a folder using Symmetric Encryption'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Generate a '''key'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Decrypt '''the '''folder '''using the '''key'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Show Slide:&lt;br /&gt;
&lt;br /&gt;
'''System Requirements'''&lt;br /&gt;
|| To record this tutorial, I am using&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Ubuntu''' '''Linux OS version 22.04'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Python 3.12.3'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Show Slide:'''Prerequisites'''&lt;br /&gt;
&lt;br /&gt;
[https://www.spoken-tutorial.org/ https://www.spoken-tutorial.org]&lt;br /&gt;
|| To follow this tutorial&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;You must have basic knowledge of using Linux Terminal and Python&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;For pre-requisite Linux and Python Tutorials, please visit this website&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Python libraries required for automation must be installed&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Show Slide:&lt;br /&gt;
&lt;br /&gt;
'''Code Files'''&lt;br /&gt;
||&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;The files used in this tutorial are provided in the Code files link.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Please download and extract the files.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Make a copy and then use them while practicing.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Show Slide:'''Encryption and Decryption'''&lt;br /&gt;
|| '''Encryption '''secures data to prevent unauthorized access.&lt;br /&gt;
&lt;br /&gt;
'''Decryption '''converts '''encrypted '''data back to its original form using a key.&lt;br /&gt;
&lt;br /&gt;
This allows authorized users to access the information&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Show Slide:'''Symmetric Encryption'''&lt;br /&gt;
|| &lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Symmetric encryption technique '''uses the same key for both '''encryption '''and '''decryption'''.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;This makes it fast and efficient.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''AES '''('''Advanced''' '''Encryption Standard''') is a strong and popular method.&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''AES '''supports 128, 192, and 256-bit keys for securing files and communications.&amp;lt;/div&amp;gt;&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Show Slide:&lt;br /&gt;
&lt;br /&gt;
'''Encryption and Decryption - Libraries'''&lt;br /&gt;
|| To automate the '''encryption '''and '''decryption '''of a '''folder''', we need the below libraries:&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''os''' manages operating system interfaces like file operations and environment variables&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''cryptography '''offers secure communication and data integrity through algorithms&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Show Slide:'''Securing Files with AES Encryption'''&lt;br /&gt;
|| In this '''tutorial''', we will see how to '''encrypt '''a folder named '''Sample '''and then '''decrypt '''it.&lt;br /&gt;
&lt;br /&gt;
We will use the '''AES algorithm '''in '''Cipher Block Chaining&amp;lt;span style=&amp;quot;color:#ff0000;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;or CBC '''mode with a 128 bit key.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Open the '''Downloads Folder'''&lt;br /&gt;
'''Files App &amp;gt; Downloads Folder &amp;gt; Sample'''&lt;br /&gt;
&lt;br /&gt;
|| I have created a folder '''Sample '''which contains some files for demonstration.&lt;br /&gt;
&lt;br /&gt;
Let us see how the '''Encryption and Decryption''' can be automated.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Point to the '''encryption.py''' in downloads folder&lt;br /&gt;
&lt;br /&gt;
Open the Text Editor with the source file&lt;br /&gt;
|| I have created the source file '''encryption.py''' for demonstration.&lt;br /&gt;
&lt;br /&gt;
Now, we will go through the source code in the text editor. &lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Looking at the Code&lt;br /&gt;
|| This source code has '''encryption '''functionalities to provide security.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''import os'''&lt;br /&gt;
&lt;br /&gt;
'''from cryptography.fernet import Fernet'''&lt;br /&gt;
|| First we need to import the '''libraries '''required to '''encrypt '''and '''decrypt '''folders.&lt;br /&gt;
&lt;br /&gt;
The '''fernet class''' is used for '''symmetric encryption'''.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''def encrypt_file(file_path, key):'''&lt;br /&gt;
|| We define a function to '''encrypt '''each '''file '''by mentioning the path to it.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''with open(file_path, 'rb') as file:'''&lt;br /&gt;
&lt;br /&gt;
'''file_data = file.read()'''&lt;br /&gt;
|| We then open the '''file '''in '''binary read mode rb''' and read its contents.&lt;br /&gt;
&lt;br /&gt;
'''Binary read''' is used to read raw bytes from a file without any translation or conversion.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''fernet = Fernet(key)'''&lt;br /&gt;
|| A '''fernet '''instance is created using the provided '''key'''.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''encrypted_data = fernet.encrypt(file_data)'''&lt;br /&gt;
|| The data read from the file is '''encrypted '''using the '''fernet '''instance.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''encrypted_file_path = file_path + '.encrypted''''&lt;br /&gt;
|| We then add '''.encrypted''' to the original '''path '''to create a new '''file path'''.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''with open(encrypted_file_path, 'wb') as encrypted_file:'''&lt;br /&gt;
&lt;br /&gt;
'''encrypted_file.write(encrypted_data)'''&lt;br /&gt;
|| Now, we open the '''file '''in '''binary write mode wb''' and write the '''encrypted '''data to it.&lt;br /&gt;
&lt;br /&gt;
'''Binary Write''' is used to write raw bytes to a file without any translation or conversion.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''os.remove(file_path)'''&lt;br /&gt;
|| To prevent unauthorized access, only the '''encrypted '''version is retained.&lt;br /&gt;
&lt;br /&gt;
The original files are removed using this command.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
|| This '''function '''stores all the '''encrypted '''files to the specified path. &lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''encrypted_files = []'''&lt;br /&gt;
|| An empty list is initialized to store the paths of the '''encrypted '''files.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
|| We iterate through all '''directories '''and '''files '''mentioned in the path.&lt;br /&gt;
&lt;br /&gt;
We then construct the full path, '''encrypt '''the files and add them to the list.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''def main(folder_path):'''&lt;br /&gt;
|| Finally, we define the main '''function '''to invoke the '''encryption '''process.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''key = Fernet.generate_key()'''&lt;br /&gt;
|| We generate a random '''symmetric encryption key '''using this function.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''print(f'Encryption Key: {key.decode()}')'''&lt;br /&gt;
|| The generated key is decoded and displayed.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
|| We call the '''function '''to '''encrypt '''all files in the specified path using the key.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:''' '''&lt;br /&gt;
|| Now, we iterate over the '''encrypted '''files and print the path of each file.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
|| Finally, we set the '''path '''of the folder and call the '''main function '''with the path.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Save the Code in the '''Downloads '''Folder&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Save the code as '''encryption.py '''in the '''Downloads '''folder.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Open the terminal ('''Ctrl + Alt + T''')&lt;br /&gt;
&lt;br /&gt;
Start Virtual Environment&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
'''&amp;gt; source Automation/bin/activate'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Open the '''terminal''' by pressing '''Control + Alt + T '''keys simultaneously.&lt;br /&gt;
&lt;br /&gt;
We will open the virtual environment we created for the '''Automation''' series.&lt;br /&gt;
&lt;br /&gt;
Type '''source space Automation forward slash bin forward slash activate.'''&lt;br /&gt;
&lt;br /&gt;
Then press enter.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Running the Code&lt;br /&gt;
&lt;br /&gt;
Type &lt;br /&gt;
&lt;br /&gt;
'''&amp;gt; &amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;cd Downloads'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;gt; python3 encryption.py'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | &amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;Now type, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;'''cd space Downloads'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;Then type&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;''' python3 &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;space &amp;lt;/span&amp;gt;encryption&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;.py'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt; and press &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;'''Enter'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt; to run the code.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;color:#252525;&amp;quot;&amp;gt;It executes the code and gives the output on the terminal as required.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;The &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;'''key '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;displayed here is used while &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;'''decrypting '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;the files. So, let us copy it.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Navigating to Downloads&lt;br /&gt;
&lt;br /&gt;
'''Files App &amp;gt; Downloads &amp;gt; Sample'''&lt;br /&gt;
&lt;br /&gt;
'''Open doc3.txt'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Go back to the '''Downloads folder '''and double click to open the '''Sample '''folder.&lt;br /&gt;
&lt;br /&gt;
The files and folders here are now '''encrypted''' as you can see because of the extension.&lt;br /&gt;
&lt;br /&gt;
If we have any '''sub folders''', the files within them will be '''encrypted '''as well.&lt;br /&gt;
&lt;br /&gt;
Let us open the encrypted file and check.&lt;br /&gt;
&lt;br /&gt;
We can see the content of the file is encrypted and not in a readable format.&lt;br /&gt;
&lt;br /&gt;
We need to decrypt the file to make it readable. Let us see how to do that.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Point to the '''decryption.py''' in downloads folder&lt;br /&gt;
&lt;br /&gt;
Open the Text Editor with the source file&lt;br /&gt;
|| I have created the source file '''decryption.py''' for demonstration.&lt;br /&gt;
&lt;br /&gt;
Now, we will go through the source code in the text editor. &lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
|| The same '''libraries '''we used to '''encrypt '''are used here as well.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
|| We define a function to '''decrypt '''each '''encrypted file '''by mentioning the path.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
&lt;br /&gt;
'''fernet = Fernet(key)'''&lt;br /&gt;
|| A '''fernet '''instance is created using the provided '''key'''.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
|| We then open the '''encrypted file '''in '''binary read mode rb''' and read its contents.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| Highlight:&lt;br /&gt;
|| The '''encrypted '''data is now '''decrypted '''using the '''fernet '''object.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Next, we define a path for the '''decrypted '''file after removing '''.encrypted''' from the file path.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Now, we open a new '''file '''in '''binary write mode wb''' and write the '''decrypted '''data to it.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Now, we delete the '''encrypted '''version of the file.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| The path of the '''decrypted '''file is displayed on the '''terminal'''.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| The next '''function '''we define''' '''is to store all the '''decrypted '''files.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| We '''iterate '''over the '''directory '''tree and construct the full path for each file.&lt;br /&gt;
The function to '''decrypt '''the files is called here.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| The path of the '''decrypted '''folder is displayed on the '''terminal'''.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| We set the path of the folder which contains the encrypted files.&lt;br /&gt;
&lt;br /&gt;
Then, we paste the key which we copied earlier.&lt;br /&gt;
|- style=&amp;quot;border:1pt solid #000000;padding:0.176cm;&amp;quot;&lt;br /&gt;
|| &lt;br /&gt;
|| Finally, we call the '''function '''which would '''decrypt '''the folder.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Save the Code in the '''Downloads '''Folder&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Save the code as '''decryption.py '''in the '''Downloads '''folder.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Observing the output on the terminal&lt;br /&gt;
&lt;br /&gt;
'''type'''&lt;br /&gt;
&lt;br /&gt;
'''&amp;gt;python3 decryption.py'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Switch back to the''' terminal'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;Now type, &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;'''python3 space &amp;lt;/span&amp;gt;decryption&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;.py'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt; and press &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#252525;&amp;quot;&amp;gt;'''Enter'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt; to run the code.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;It executes the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;'''script'''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt; and displays the paths of all the &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;'''decrypted '''&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;color:#252525;&amp;quot;&amp;gt;files and the folder.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Navigating to Downloads&lt;br /&gt;
&lt;br /&gt;
'''Files App &amp;gt; Downloads &amp;gt; Sample'''&lt;br /&gt;
&lt;br /&gt;
'''Open a file by double clicking'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Go back to the '''Downloads folder '''and double click to open the '''Sample '''folder.&lt;br /&gt;
&lt;br /&gt;
You can see the list of all the '''files '''we had originally not '''encrypted'''.&lt;br /&gt;
&lt;br /&gt;
Now, you can double click to open the files.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Closing the virtual environment&lt;br /&gt;
&lt;br /&gt;
Type &lt;br /&gt;
&lt;br /&gt;
'''&amp;gt; deactivate'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Switch back to the terminal to close the virtual environment.&lt;br /&gt;
&lt;br /&gt;
Type '''deactivate'''.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Show Slide:'''Summary'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | This brings us to the end of this tutorial. Let us summarise.&lt;br /&gt;
&lt;br /&gt;
In this tutorial, we have learnt to&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Encrypt a folder using Symmetric Encryption'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Generate a '''key'''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;'''Decrypt '''the '''folder '''using the '''key'''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Show Slide:&lt;br /&gt;
&lt;br /&gt;
'''Assignment'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | As an assignment, please do the following:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Modify the program '''decryption.py '''&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;div style=&amp;quot;margin-left:1.27cm;margin-right:0cm;&amp;quot;&amp;gt;Add exception handling to capture the missing encryption key&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Show Slide:'''About the Spoken Tutorial Project'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | The video at the following link summarises the '''Spoken Tutorial Project.'''Please download and watch it.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Show Slide:&lt;br /&gt;
&lt;br /&gt;
'''Spoken Tutorial Workshops'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | The '''Spoken Tutorial Project''' team conducts workshops and gives certificates.&lt;br /&gt;
&lt;br /&gt;
For more details, please write to us.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Show Slide:'''Answers for THIS Spoken Tutorial'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Please post your timed queries in this forum.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Show Slide: &lt;br /&gt;
&lt;br /&gt;
'''FOSSEE Forum'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | For any general or technical questions on '''Python for Automation''', visit the '''FOSSEE forum''' and post your question.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Show Slide:'''Acknowledgement'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | The '''Spoken Tutorial Project''' was established by the '''Ministry of Education, Government of India.'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | Show Slide:'''Thank You'''&lt;br /&gt;
| style=&amp;quot;border-top:1pt solid #000000;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;border-right:0.5pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.092cm;padding-right:0.191cm;&amp;quot; | This is '''Sai''' '''Sathwik''', a FOSSEE Semester Long Intern 2024, IIT Bombay signing off.&lt;br /&gt;
&lt;br /&gt;
Thanks for joining.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nirmala Venkat</name></author>	</entry>

	</feed>