Spec-Zone.ru › ColdFusion

encrypt

Шифрует строку с помощью алгоритма на основе симметричного ключа, в котором один и тот же ключ используется для шифрования и расшифровки строки. Безопасность зашифрованной строки зависит от сохранения ключа в секрете и выбора алгоритма. Поддержка алгоритмов определяется установленным по умолчанию поставщиком JCE в Lucee или ColdFusion Standard. В ColdFusion Enterprise алгоритмы предоставляются поставщиком JCE RSA BSafe Crypto-J, сертифицированным по стандарту FIPS.

encrypt(string, key [, algorithm [, encoding] [, iv | salt [, iterations]]]) → returns string

  • CF4+
  • Lucee
  • BL 1.0.0+
  • См. также: decrypt GenerateSecretKey

    Справочник аргументов

    string string
    Обязательный

    Строка для шифрования.

    key string
    Обязательный

    Ключ или начальное значение для шифрования строки.* Для алгоритма CFMX_COMPAT — произвольная комбинация любого количества символов, используемая как начальное значение для создания 32-битного ключа шифрования.* Для всех остальных алгоритмов — ключ в формате, используемом алгоритмом. Для этих алгоритмов используйте функцию GenerateSecretKey для создания ключа.

    algorithm string
    По умолчанию: CFMX_COMPAT

    Алгоритм для шифрования строки. В ColdFusion Standard Edition устанавливаются следующие алгоритмы:* CFMX_COMPAT: алгоритм, использовавшийся в ColdFusion MX и предыдущих выпусках. Это наименее безопасный вариант (по умолчанию).* AES: усовершенствованный стандарт шифрования, установленный Национальным институтом стандартов и технологий (NIST) в FIPS-197.* BLOWFISH: алгоритм Blowfish, определённый Брюсом Шнайером.* DES: алгоритм стандарта шифрования данных, определённый NIST в FIPS-46-3.* DESEDE: алгоритм «Triple DES», определённый NIST в FIPS-46-3.ПРИМЕЧАНИЕ: в ColdFusion Enterprise Edition устанавливается библиотека RSA BSafe Crypto-J, обеспечивающая криптографию повышенной стойкости, соответствующую FIPS-140. Она включает следующие алгоритмы:* AES: усовершенствованный стандарт шифрования, установленный Национальным институтом стандартов и технологий (NIST) в FIPS-197.* DES: алгоритм стандарта шифрования данных, определённый NIST в FIPS-46-3.* DESEDE: алгоритм «Triple DES», определённый NIST в FIPS-46-3.* DESX: расширенный симметричный алгоритм шифрования стандарта шифрования данных.* RC2: блочный симметричный алгоритм шифрования RC2, определённый в RFC 2268.* RC4: симметричный алгоритм шифрования RC4.* RC5: алгоритм шифрования RC5.* PBE: алгоритм шифрования на основе пароля, определённый в PKCS #5.* AES/GCM/NoPadding: алгоритм шифрования.ПРИМЕЧАНИЕ: если установить дополнительные криптографические алгоритмы, можно также указать любые поддерживаемые ими алгоритмы шифрования и расшифровки.
    Значения:
    • CFMX_COMPAT
    • AES
    • BLOWFISH
    • DES
    • DESEDE
    • DESX
    • RC2
    • RC4
    • RC5
    • PBE
    • AES/GCM/NoPadding
    • AES/CBC/PKCS5Padding
    • AES/CTR/PKCS5Padding

    encoding string
    По умолчанию: UU

    Двоичная кодировка, используемая для представления данных в виде строки. * Base64: алгоритм Base64, определённый IETF RFC 2045.* Hex: для представления шестнадцатеричных значений байтов используются символы A–F и 0–9.* UU: стандартный алгоритм кодирования UUEncode в UNIX (по умолчанию).ПРИМЕЧАНИЕ: если указать этот параметр, необходимо также указать параметр algorithm.
    Значения:
    • UU
    • Base64
    • Hex

    iv binary

    ЭТОТ ПАРАМЕТР НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ОДНОВРЕМЕННО С SALT.Укажите этот параметр, чтобы настроить шифрование ColdFusion в соответствии с параметрами другого программного обеспечения для шифрования.* Для блочных алгоритмов шифрования: это двоичное значение вектора инициализации, используемое алгоритмом. Алгоритм должен поддерживать режим обратной связи, отличный от ECB. Значение должно быть двоичным и точно соответствовать размеру блока алгоритма.ПРИМЕЧАНИЕ: если указать этот параметр, необходимо также указать параметр algorithm.

    salt binary

    ЭТОТ ПАРАМЕТР НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ОДНОВРЕМЕННО С IV.Укажите этот параметр, чтобы настроить шифрование ColdFusion в соответствии с параметрами другого программного обеспечения для шифрования.* Для алгоритмов шифрования на основе пароля: это двоичное значение соли, используемое для преобразования пароля в ключ.ПРИМЕЧАНИЕ: если указать этот параметр, необходимо также указать параметр algorithm.

    iterations numeric
    По умолчанию: 0

    Количество итераций для преобразования пароля в двоичный ключ. Укажите этот параметр, чтобы настроить шифрование ColdFusion в соответствии с параметрами другого программного обеспечения для шифрования.ПРИМЕЧАНИЕ: если указать этот параметр, необходимо также указать параметр algorithm с алгоритмом шифрования на основе пароля (PBE).ПРИМЕЧАНИЕ: этот параметр используется вместе с параметром salt. Не указывайте этот параметр для блочных алгоритмов шифрования.ПРИМЕЧАНИЕ: для шифрования и расшифровки данных необходимо использовать одно и то же значение.

    Совместимость

    ColdFusion:

    Версия 4+ В CF7+ добавлена поддержка дополнительных алгоритмов. В CF8 добавлена поддержка шифрования с использованием библиотеки RSA BSafe Crypto-J в Enterprise Edition.

    Lucee:

    Lucee использует объединённый атрибут IVorSalt.

    Ссылки дополнительная информация о функции encrypt

    • Надёжное шифрование в CF7 — обзор алгоритмов шифрования

    Примеры
    Пример кода с вызовом функции encrypt

    Шифрование с помощью AES в режиме ECB

    Ключ необходимо создать с помощью функции generateSecretKey("AES").

    encrypt("top secret", "WTq8zYcZfaWVvMncigHqwQ==", "AES", "Base64")

    Ожидаемый результат: keciULin7bxOWvN/BOarWw==

    Шифрование с помощью AES в режиме сцепления блоков шифротекста (CBC)

    По умолчанию encrypt() использует для шифрования режим электронной кодовой книги (ECB). Для повышения безопасности следует указать используемые режим и заполнение. В этом примере используется режим CBC и PKCS5Padding. Значение зашифрованной строки будет меняться при каждом запуске, поскольку IV генерируется случайным образом.

    msg = 'data to encrypt';
    key = generateSecretKey('AES');
    encMsg = encrypt( msg, key, 'AES/CBC/PKCS5Padding', 'HEX');
    writeOutput( encMsg );

    Шифрование с помощью AES в режиме Галуа/счётчика (GCM)

    Режим GCM работает в CF 2016+ начиная с обновления 2. В настоящее время он не работает в Lucee (ошибка: LDEV-904).

    msg = 'data to encrypt';
    key = generateSecretKey('AES');
    encMsg = encrypt( msg, key, 'AES/GCM/NoPadding', 'Base64');
    writeOutput( encMsg );

    © 2012–present Foundeo, Inc. and the CFDocs contributors.
    Licensed under the MIT License.
    ColdFusion is a trademark of Adobe Systems Incorporated.
    https://cfdocs.org/encrypt

    Spec-Zone.ru

    Настройки Оффлайн Что нового Помощь О нас
    Spec-Zone .ru
    спецификации, руководства, описания, API