Як написати просту програму для шифрування тексту в зображення.


Результат роботи програми

Бачив тут була стаття про 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;

For i: = 1 to 26 do begin if Chr (64 + i) = str then Result: = i +26; end; For i: = 1 to 32 do begin if Chr (223 + i) = str then Result: = i +52; end; For i: = 1 to 32 do begin if Chr (191 + i) = str then Result: = i +84; 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 (wc * a, hc * a, (wc +1) a, (hc +1) a); inc (wc); if wc = maxw then begin wc: = 0; hc: = hc +1; end; end; 4 крок

Ви також можете завантажити готовий варіант програми, там є і коментарі.
http://wenicc.dq.by/downloads/shifr.pas

Якщо у вас не виявилося Паскаля, то ви можете завантажити його з офіційного сайту .
ftp://sunschool.math.rsu.ru/pub/pabc/PABCDistr.zip