CodeIgniter - Используйте статический IV при использовании AES в режиме CBC - PullRequest
0 голосов
/ 09 января 2019

Codeigniter 3.x

Привет, ребята. У меня есть вопрос об использовании IV в классе шифрования в CodeIgniter. Я хотел бы создать ключ на основе 2 входов. У меня есть скрипт Python, который мы уже используем для создания ключа, но я пытаюсь восстановить его в CodeIgniter. Я читал о классе шифрования, но я относительно плохо знаком с криптографией, поэтому не знаю, возможно ли то, что я делаю.

Python

Допустим, у меня есть такая функция python:

import base64
from Crypto.Cipher import AES

def encrypt(key, init_vector, value):
    enc = AES.new(key, AES.MODE_CBC, init_vector)
    return enc.encrypt(value)

Тогда у нас есть 2 пользовательских ввода, где var должно быть 14 символов, и целое число, которое должно быть 2 символа:

var = "abcdefghijklmn"
int = "01"

Затем мы создаем ключ со статическим ключом и IV:

key = base64.b64encode(encrypt("abcdefghikjlmnop", "the_static_IV", var+int))

И это приводит к нашему ключу.

Библиотека шифрования

Теперь я знаю, что библиотека шифрования в CI способна сделать это, но я не могу использовать статический IV. IV генерируется случайным образом (который я прочитал на самом деле лучшая практика), поэтому этот подход не сработает. Кто-нибудь знает, могу ли я использовать статический IV в CI, или я могу сгенерировать дешифруемый ключ, зная только ключ, используемый для его генерации? И если да, то как мне этого добиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...