Bases: BaseCodec
Akatsuki is a steganography method for Image.
Source code derived from: https://github.com/Chiheb-Nexus/akatsuki
Source code in stegobox/codec/akatsuki.py
| class Akatsuki(BaseCodec):
"""
Akatsuki is a steganography method for Image.
Source code derived from: https://github.com/Chiheb-Nexus/akatsuki
"""
def encode(self, carrier: Image.Image, payload: str) -> Image.Image:
"""Encoder requires the carrier to be image file the payload to be
txt file.
Args:
carrier: imgage file. Read with `stegobox.io.image.read()`.
payload: txt file . Payload (secret executable file) to be
encoded. Also read with `io.txt.read()`.
Returns:
Encrypted imgage file.
"""
secretfilename = basename(payload).encode()
with open(payload, "rb") as f:
secretdata = f.read()
header = bytearray(b"\0" * 128)
header[0:4] = pack("<I", len(secretdata))
header[4 : 4 + len(secretfilename)] = secretfilename
header = header[:128]
pixelmanipulator = PixelManipulator(carrier)
bitfactory = BitFactory(secretdata)
pixelmanipulator.apply_bits(header, bitfactory)
return pixelmanipulator.get_img()
def decode(self, carrier: Image.Image) -> str:
"""Decode the secret string from the carrier imgae file.
Args:
carrier: Encrypted image file bytes. Read with
`io.image.read()`.
Returns:
The decoded string.
"""
pixelscraper = PixelScraper(carrier)
data = pixelscraper.get_data()
secret_str = str(bytes(data), encoding="utf-8")
return secret_str
|
encode(carrier, payload)
Encoder requires the carrier to be image file the payload to be
txt file.
Parameters:
Name |
Type |
Description |
Default |
carrier |
Image
|
imgage file. Read with stegobox.io.image.read() .
|
required
|
payload |
str
|
txt file . Payload (secret executable file) to be
encoded. Also read with io.txt.read() .
|
required
|
Returns:
Source code in stegobox/codec/akatsuki.py
| def encode(self, carrier: Image.Image, payload: str) -> Image.Image:
"""Encoder requires the carrier to be image file the payload to be
txt file.
Args:
carrier: imgage file. Read with `stegobox.io.image.read()`.
payload: txt file . Payload (secret executable file) to be
encoded. Also read with `io.txt.read()`.
Returns:
Encrypted imgage file.
"""
secretfilename = basename(payload).encode()
with open(payload, "rb") as f:
secretdata = f.read()
header = bytearray(b"\0" * 128)
header[0:4] = pack("<I", len(secretdata))
header[4 : 4 + len(secretfilename)] = secretfilename
header = header[:128]
pixelmanipulator = PixelManipulator(carrier)
bitfactory = BitFactory(secretdata)
pixelmanipulator.apply_bits(header, bitfactory)
return pixelmanipulator.get_img()
|
decode(carrier)
Decode the secret string from the carrier imgae file.
Parameters:
Name |
Type |
Description |
Default |
carrier |
Image
|
Encrypted image file bytes. Read with
io.image.read() .
|
required
|
Returns:
Source code in stegobox/codec/akatsuki.py
| def decode(self, carrier: Image.Image) -> str:
"""Decode the secret string from the carrier imgae file.
Args:
carrier: Encrypted image file bytes. Read with
`io.image.read()`.
Returns:
The decoded string.
"""
pixelscraper = PixelScraper(carrier)
data = pixelscraper.get_data()
secret_str = str(bytes(data), encoding="utf-8")
return secret_str
|