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.
中是不可能的
我正在使用 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.
中是不可能的