static function decryptArray($code, RSA $rsa, $messageLen) { $rsa = $rsa->rsa; $rsaBytes = $rsa['size'] / 8; $codeLen = strlen($code); $message = ''; $messageLenNow = 0; for ($i = 0; $i < $codeLen; $i += $rsaBytes) { $block = '0'; $messageBlock = ''; for ($k = 0; $k < $rsaBytes; $k++) { $block = bcadd(ord($code[$i + $k]), bcmul($block, 256)); } $source = RSA::decryptBlock($block, $rsa); for ($k = 1; $k < $rsaBytes; $k++) { $byte = bcmod($source, 256); $source = bcdiv($source, 256); if ($messageLenNow + $k <= $messageLen) { // опускает последние нули БЛОК(8ерф98рпяыщзпрпо0ц) деш (Привет мир!0000000) $messageBlock = chr($byte) . $messageBlock; } } $message .= $messageBlock; $messageLenNow += $rsaBytes - 1; } return $message; }