elimizde her bir karakteri 1 bayt ile ifade edilen n karakterlik bir yazı olduğunu kabul edelim. bu yazıyı bir resmin içerisine saklamak istiyoruz. bu durumda gözün renklerde meydana gelecek küçük değişimleri fark edememesinden faydalanabiliriz. elimizdeki resimde her bir baytın en anlamsız bitinde yapacağımız değişikliği insan gözü fark edemeyecektir. başka bir deyişle resimdeki her bir baytın içine 1 bitlik bilgi saklayabiliriz. bu durumda elimizdeki 1 baytı (1 bayt = 8 bit) resimdeki 8 baytın içine bit bit yerleştirmeliyiz. buradan da anlaşıldığı gibi n baytlık bir yazıyı en az 8*n baytlık bir resme yerleştirebiliriz. diğer türlü ifade edersek m baytlık bir resmin içine ║m/8║ karakter (1 karakter = 1 bayt) saklayabiliriz. bu işlemi gerçekleştiren algoritma aşağıda verilmiştir.
bu algoritmayı gerçekleyen c kodu ise şu şekildedir:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
p = 0;
for(i=0; i<n; ++i)
{
for(j=7; j>=0; --j)
{
oku = yazi[i];
oku >>= j;
oku &= 0x01;
if(oku == 0x01)
resim[p] |= 0x01;
else
resim[p] &= 0xfe;
p++;
}
}
resme gizlenmiş yazıyı okumak için gerekli algoritma ise şu şekildedir:
bu algoritmayı gerçekleyen c kodu ise şu şekildedir:
1
2
3
4
5
6
7
8
9
10
11
12
13
p = 0;
for(i=0; i<n; ++i)
{
yazi[i] = 0;
for(j=7; j>=0; --j)
{
oku = resim[p];
oku &= 0x01;
oku <<= j;
yazi[i] |= oku;
p++;
}
}
Follow me on Twitter