Является ли CBC правильным режимом AES для этого варианта использования для этого типа поля, хранящегося в поле TEXT в MySQL?
Ну, это немного зависит от вашего текста. Но, вероятно, да.
Ключ выглядит так, как будто он сгенерирован правильно?
Да, выглядит хорошо для меня. Это должно выглядеть случайным, и это выглядит случайным. Не уверен, что тебя беспокоит.
Правильно ли IV? Является ли добавление IV к зашифрованному тексту правильным способом или это должно быть отдельное поле?
IV выглядит хорошо для меня. Я не вижу многих причин, почему вы не должны делать это таким образом, кроме одной: это не очень эффективно для хранения. Было бы гораздо эффективнее хранить данные не в виде шестнадцатеричной строки, а в виде двоичных данных! И тогда вы не можете просто использовать двоеточие для разделения данных. Так что либо вы знаете, что это первые n
байтов, либо вы делаете отдельное поле. У обоих есть свои плюсы и минусы, но оба в порядке. Это вопрос стиля.