Add LSB
name: "🚀 Feature Request"
Feature Request
New Feature
Add LSB algorithm
Why is it required
Simple steganography algorithm, give users more choice. If this algorithm works we can add more complicated ones later.
Other Information
LSB Pseudo Code
Encoding
input:
- Image Data (array)
- Message (byte string array)
- Separator (byte string)
Output:
- Image Data (array)
function encode(imageData, message, separator):
var data_to_encode = [padded_length, separator] + message
var imageIndex = 0
for data in data_to_encode:
imageData[imageIndex] = get_new_pixel_data(imageData, data, imageIndex)
imageIndex += 1
return imageData
Decoding
input:
- Image Data (array)
- Separator (byte string)
Output:
- Message (binary string)
function decode(image_data, separator):
var message_length = get_message_length(image_data, separator)
var message = []
var pixel_index = get_start_index(message_length, separator)
for i in 1...message_length:
message += get_next_byte(image_data, pixel_index)
return message
function get_message_length(image_data, separator):
current_message_length = []
completed = false
while !completed:
next_byte = get_next_byte(image_data)
if not next_byte:
throw_error("Invalid Image Data")
elif next_byte == separator && \
current_message_length[-1] != separator && \
len(current_message_length) != 1:
completed = true
current_message_length + = next_byte
return to_decimal("".join(current_message_length))
Edited by Haseeb Majid