Як написати просту програму для шифрування тексту в зображення
Результат роботи програми
Бачив тут була стаття про QR-коди, після її прочитання мені захотілося зробити свій шифрувальник :)
Він написаний на мові PascalABC, хоча можна було й інший вибрати, але мені під руку більше нічого не попало, до того ж ця мова дуже простий для освоєння.
Інструкція
1 крок
Принцип роботи програми простий: спочатку беруться по черзі всі символи з шіфруемий рядки, потім вони конвертуються в числа, наприклад a - 1, b - 2, z - 26 і тд. Потім ці числа переводяться у формат RGB, для конвертації в формат RGB потрібно три числа, значить в одному квадраті можна зашифрувати три символи. А потім вже малюється квадрат із заданим кольором.
2 крок
Перше, що потрібно зробити - це функцію конвертації символу в колір. Я її назвав "Code".
function Code (str: string): integer-
var i: integer-
begin
For i: = 1 to 26 do
begin
if Chr (96 + i) = str then Result: = i-
end;
end;
Якщо написати команду write (Code ('a')) - то на екран буде виведено код символу "а". На екрані з'явиться одиниця.
3 крок
А потім потрібно зробити функцію розбивки шіфруемий рядки і малювання кольорових квадратів.
For j: = 1 to Trunc (Length (in_str) / 3) do
begin
x: = j * 3-2-
tmpR: = round (Code (Copy (in_str, x, 1))li_lv) -
tmpG: = round (Code (Copy (in_str, x + 1,1))li_lv) -
tmpB: = round (Code (Copy (in_str, x + 2,1))li_lv) -
If debug = 1 then
begin
WriteLn (chr (39), Copy (in_str, x, 1), chr (39), '-', tmpR) -
WriteLn (chr (39), Copy (in_str, x + 1,1), chr (39), '-', tmpG) -
WriteLn (chr (39), Copy (in_str, x + 2,1), chr (39), '-', tmpB) -
WriteLn-
end-
SetBrushColor (RGB) -
Rectangle (wca, hc * a, (wc + 1)a, (hc + 1)a) -
inc (wc) -
if wc = maxw then begin wc: = 0- hc: = hc + 1 end-
end;
4 крок
Ви також можете завантажити готовий варіант програми, там є і коментарі.
https://wenicc.dq.by/downloads/shifr.pas
Якщо у вас не виявилося Паскаля, то ви можете завантажити його з офіційного сайту.
ftp://sunschool.math.rsu.ru/pub/pabc/PABCDistr.zip