phpseclib\Crypt\Blowfish::_encryptBlock PHP Метод

_encryptBlock() публичный Метод

Encrypts a block
public _encryptBlock ( string $in ) : string
$in string
Результат string
    function _encryptBlock($in)
    {
        $p = $this->bctx["p"];
        // extract($this->bctx["sb"], EXTR_PREFIX_ALL, "sb"); // slower
        $sb_0 = $this->bctx["sb"][0];
        $sb_1 = $this->bctx["sb"][1];
        $sb_2 = $this->bctx["sb"][2];
        $sb_3 = $this->bctx["sb"][3];
        $in = unpack("N*", $in);
        $l = $in[1];
        $r = $in[2];
        for ($i = 0; $i < 16; $i += 2) {
            $l ^= $p[$i];
            $r ^= ($sb_0[$l >> 24 & 0xff] + $sb_1[$l >> 16 & 0xff] ^ $sb_2[$l >> 8 & 0xff]) + $sb_3[$l & 0xff];
            $r ^= $p[$i + 1];
            $l ^= ($sb_0[$r >> 24 & 0xff] + $sb_1[$r >> 16 & 0xff] ^ $sb_2[$r >> 8 & 0xff]) + $sb_3[$r & 0xff];
        }
        return pack("N*", $r ^ $p[17], $l ^ $p[16]);
    }