private function hitEncrypt(string $data): string
    {
        $cipherAlgo = match (strlen($this->aesKey)) {
            24 => 'AES-192-CBC',
            32 => 'AES-256-CBC',
            default => 'AES-128-CBC',
        };
        $paddedData = $this->zeroPad($data);
        $text = openssl_encrypt($paddedData, $cipherAlgo, $this->aesKey,  OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $this->aesIv);
        return base64_encode((string)$text);
    }

    private function zeroPad($data) {
        $blockSize = 16;
        $padding = $blockSize - (strlen($data) % $blockSize);
        return $data . str_repeat("\0", $padding);
    }
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐