- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/crypt.php
- Класс: CSteganos
- Вызов: CSteganos::__HideData
function __HideData()
{
if ($this->containerType == "bmp")
{
$levelBase = intval(8 / $this->level);
$num = 0;
for ($i = 0; $i < $this->level; $i++)
{
$num = $num << 1;
$num = $num + 1;
}
$num = 255 ^ $num;
$data = sprintf("BSAW%08x", mb_strlen($this->data)).$this->data;
for ($i = 0, $j = 55, $len = mb_strlen($data); $i < $len; $i++, $j += $levelBase)
{
$temp = sprintf("%08s", decbin(ord(mb_substr($data, $i, 1))));
for ($k = 0; $k < $levelBase; $k++)
{
$this->containerData[$j + $k] = chr(ord($this->containerData[$j + $k]) & $num);
$n = 0;
for ($t = 0; $t < $this->level; $t++)
$n += ($temp[$k * $this->level + $t] == '1') ? (1 << ($this->level - 1 - $t)) : 0;
if ($n != 0)
$this->containerData[$j + $k] = chr(ord($this->containerData[$j + $k]) + $n);
}
}
}
elseif ($this->containerType == "txt")
{
$data = "";
for ($i = 0, $n = mb_strlen($this->data); $i < $n; $i++)
{
$data .= $this->__ConvertToBitString(ord($this->data[$i]));
}
$containerDataLength = sprintf("%08X", mb_strlen($this->containerData));
for ($i = 6; $i >= 0; $i -= 2)
{
sscanf(mb_substr($containerDataLength, $i, 2), "%X", $b);
$data .= $this->__ConvertToBitString($b);
}
$this->containerData .= $data."rn";
}
}