Codeigniter 3 - 加密创建与 ctr 模式相同的字符串

Codeigniter 3 - encryption create same string with ctr mode

我正在使用 CI3 加密库。是否可以每次使用 ctr 模式创建相同的加密字符串,或者我必须使用不太安全的 ecb。这是我的设置:

$this->encryption->initialize(
            [
                'cipher' => 'aes-256',
                'mode'   => 'ctr',
                'key'    => 'xxx'
            ]

        );

正在插入连续剧:

public function insertSerials($serials, $type)
    {
        $data = [];

        $now = date('Y-m-d H:i:s');

        foreach ($serials as $serial):
            $data[] = [
                'serial'     => $this->encryption->encrypt($serial),
                'type'       => $type,
                'date_added' => $now,
            ];
        endforeach;

        $this->db->insert_batch($this->_table_name, $data);
    }

除 ECB 模式外的所有模式都需要某种初始化向量。对于点击率,这称为随机数。对于 CTR 模式来说,使用相同的密钥在每次加密时都具有唯一的 IV 是至关重要的,否则很容易通过一些巧妙的推论来恢复许多明文。为 CTR 使用静态随机数比使用 ECB 会产生更具破坏性的结果。

看来你其实是想放弃语义安全,所以用ECB模式没什么问题。具有静态 IV 的 CBC 模式会更好,但这在 CI3.

中是不可能的