DeCrypt-dən Nağıllar#3370

DeCrypt-dən Nağıllar

1 saniyə
64 meqabayt
Asan

Xəbər qruplarında, siyahılarda və məlumatların ictimai şəkildə paylaşılmasının digər yollarında məlumatları gizlətməyin populyar üsullarından biri ROT13 alqoritmidir: burada əlifba simvolları sadəcə 13 mövqeyə (modulo 26) çevrilir, beləliklə, şifrləmə və deşifrləmə alqoritmləri eynidir. Bəzi oxucular üçün potensial olaraq təhqiramiz olan mesajlar qəsdən ROT13 formasında yerləşdirilir. Nəzəriyyə budur ki, oxucu təhqiramiz materialı açıq mətn formasına çevirməkdən məsuldur və buna görə də oxucu bu barədə şikayət edə bilməz.

Biz məlumatları gizlətmək üçün dövri şifrə istifadə edə bilərik. Burada təsvir olunan şifrləmə alqoritmi üçün deşifrləmə alqoritmini yaratmaq sizin vəzifənizdir. Bu, 7-bit ASCII/ANSI simvolları ilə məhdudlaşdırılıb və biz yalnız çap olunan simvollarla məşğul olacağıq — 0x20 (boşluq) daxil olmaqla 0x7e (' ') üçün 95 simvol. Bu yolla şifrlənmiş mətn hələ də fayl manipulyasiyası və ötürülməsi məqsədləri üçün təmiz mətn kimi işlənə bilər.

Şifrləmə Alqoritmi

Bu xətti kongruent təsadüfi ədəd generatoru üçün bütün zəruri məlumatları kodlaşdırmaq üçün üç ədəd seçin: vurucu (a), modulyar (m) və toxum (s):

double r(in int a, in int m, inout int s)

double val = s mod m / double(m)

s = ( a * s + 1 ) mod m

return val

Təsadüfi ədəd generatoru və ilkin toxum (yuxarıdakı pseudo kodda s) üçün iki tam ədəd faylda ilk sətirdə yerləşdirilir, bu da üç boşluqla ayrılmış 32-bit tam ədəd ehtiva edir, "a m s" sırası ilə verilir. Aralıq: 2 < number < 65536. Məsələn, "12343 65536 11" ilk sətiri yaradır

Şifrləmə proqramının çıxış faylı bu üç ədədi, boşluqla ayrılmış, bir sətirdə ehtiva edir. Şifrlənmiş mətn növbəti sətirdə başlayır. Bu, deşifrləmə proqramınıza giriş təşkil edir.

Şifrlənmiş mətn aşağıdakı alqoritm ilə yaradılır:

hər bir c simvolu üçün giriş axınında

əgər simvol 0x20 ilə 0x7e arasında deyilsə

onu çıxışa ötürün

əks halda

c = ( (c – 32) + ceiling( 95 – r(a,m,seed)*95) ) ) mod 95 + 32

c-ni çıxışa göndərin

Giriş

Proqramınız üçün giriş şifrləmə proqramının çıxışıdır: bir sətirdə üç boşluqla ayrılmış ədəd. Şifrlənmiş mətn növbəti sətirdə başlayır və faylın sonuna qədər davam edir.

Çıxış

Çıxışınız giriş faylında şifrlənmiş mətnin deşifrlənməsidir.

Nümunələr

Nümunə 1

Loading
Loading