Today, I will show you how to apply coding skills, by hiding a password or secret message in a photo with Python. Steganography is a technique that has been used for quite some time. Since World War II, it has been used extensively as a means of communication between allies and to prevent information held by enemies from being revealed. I will show you how to do this using two different techniques, one involving the secret key and the other not.
Join the channel Telegram of the AnonyViet 👉 Link 👈 |
Request
You install Python and then continue to install the 2 libraries below.
Setting
pip install steganocryptopy
pip install stegano
Note: If you use Linux, change pip to pip3.
How to send secret messages in photos without a key
I will hide the text in the image without any encryption key, so the recipient of the image can decrypt and get the hidden text very easily.
Advantage
The advantage of this is that it’s very simple so you won’t have to deal with any annoying problems.
Defect
Anyone can decrypt as long as they use the same library that you used during encryption.
Syntax
from stegano import lsb
secret = lsb.hide(path_to_img, secret_msg)
secret.save(ecrypted_img_name)
You must have a sample image in your project folder to hide the message, next we have to provide the path to the prepared image.
Eg
>>> from stegano import lsb
>>> secret = lsb.hide("sample.png", "Python is dangerous be careful")
>>> secret.save("sample_secret.png")
Note: Since the sample.png file is in the same directory as the .py executable, it is enough to just write the image file name. If the image file is different from the directory, you need to write the full path.
Now if you look in the project folder you will notice there is a new image with the name sample_secret.png. At a glance or look closely, you won’t know there is a hidden message in there, right?
Decryption
Make sure the image with hidden text is in your project folder.
Syntax
>>> from stegano import lsb
>>>lsb.reveal(path_to_an_image)
Eg
>>> from stegano import lsb
>>>lsb.reveal('sample_secret.png')
'Python is dangerous be careful'
That’s it, now we will dive into how to hide text in images with secret key.
How to hide text in images with Secret Key
I will hide the secret text along with an encryption key to decrypt it. Therefore, only the person with the key can decrypt it.
Advantage
It is very secure because only those who have the key can decrypt it.
Defect
When the encryption key is lost, the decryption process will be a bit complicated.
Syntax
>>>from steganocryptopy.steganography import Steganography
>>> Steganography.generate_key(path_to_key)
>>> encrypted = Steganography.encrypt(path_to_key, path_to_img, path_to_secretfile)
>>> encrypted.save(encrypted_imgname)
Eg
Suppose I have a file containing a key named keya file containing hidden messages named classified.us and the image is called sample.png.
>>>from steganocryptopy.steganography import Steganography
>>> Steganography.generate_key("key")
>>> encrypted = Steganography.encrypt("key","sample.png", "classified.us")
>>> encrypted.save("Secret.png")
Now when you run the above code you will see a new image on your project folder named Secret.png.
Decryption
To decode the image you will need the file containing key and your encrypted images.
Syntax
>>> from steganocryptopy.steganography import Steganography
>>> Steganography.decrypt(path_to_key, path_to_image)
Eg
>>> from steganocryptopy.steganography import Steganography
>>> Steganography.decrypt("key", "Secret_img.png")
'Life is short you need Python\n'
Congratulations, you just learned how to hide secret messages in pictures, Now don’t be afraid to share the message with your friends.