Кажется, что вы используете "слова" в качестве шифрования key
.AES_ENCRYPT
функция принимает два аргумента:
value
- строка для шифрования.Если мое понимание верно, то здесь ваши слова должны идти.Здесь нет особых ограничений по длине, поэтому можно использовать любой строковый порт. key
- используемый ключ шифрования. Этот имеет ограничение в 16 символов.Это то, что следует использовать для расшифровки в более поздний момент времени.
===================== ОБНОВЛЕНИЕ =====================
Зная подробности из комментариев ниже, я попытался воспроизвести ошибку.Я собрал очень простое сопоставление, которое использует два порта для генерации зашифрованного текста:
AES_ENCRYPT('Some 16char text', 'mykey')
- этот текст содержит ровно 16 символов, как указано - 1AES_ENCRYPT ('Some16-символьный текст, плюс дополнительный текст. ',' Mykey ') 1 - точно такой же, 16-символьный текст плюс некоторые дополнительные символы.
То, что я пытаюсь доказать, - это то, что ввод усекается до 16 символов независимо от его длины, и, следовательно, вывод AES_ENCRYPT
будет таким же.Отображение:
Вот вывод:
То жеотображается в моей цели SQL Server:
Действительно: результат ТОЧНО такой же, текст кажется усеченным.Вы правы!
Я просто хотел бы отметить здесь, что было бы здорово, если бы вы подготовили это.Это сэкономит мне время.
===================== РЕШЕНИЕ =====================
Теперь, когда я смог воспроизвести и подтвердить проблему, я попытался ее решить.
Результаты:
SQL Server:
Вы были правы: текст получил вялость.Поэтому я изменил длину портов:
Надеюсь, это поможет!