Todos los productos
Search
Centro de documentos

CDN:Funciones de algoritmos de cifrado

Última actualización: Sep 17, 2026

EdgeScript proporciona funciones de cifrado integradas para el cifrado, el descifrado y el cálculo de resúmenes en el edge de CDN. Utilice estas funciones en sus scripts de edge para firmar solicitudes, comprobar la integridad o proteger datos confidenciales.

Descripción general de las funciones

Función

Categoría

Descripción

aes_new(config)

AES

Crea un objeto AES para cifrar y descifrar

aes_enc(o, s)

AES

Cifra texto plano mediante AES

aes_dec(o, s)

AES

Descifra texto cifrado mediante AES

sha1(s)

Resumen

Calcula un resumen SHA-1 (binario)

sha2(s, l)

Resumen

Calcula un resumen SHA-2 (binario)

hmac(k, s, v)

Resumen

Calcula un resumen HMAC (binario)

hmac_sha1(k, s)

Resumen

Calcula un resumen HMAC-SHA-1 (binario)

md5(s)

Resumen

Calcula un resumen MD5 (hexadecimal)

md5_bin(s)

Resumen

Calcula un resumen MD5 (binario)

aes_new

Crea un objeto Advanced Encryption Standard (AES) para operaciones posteriores de cifrado y descifrado. Pase el objeto devuelto a aes_enc() para cifrar o a aes_dec() para descifrar.

Sintaxis

aes_new(config)

Parámetros

config es un diccionario con los siguientes campos:

Campo

Tipo

Obligatorio

Descripción

key

string

Sí

La clave de cifrado

cipher_len

integer

Sí

Longitud de la clave. Valores válidos: 128, 192, 256

cipher_mode

string

Sí

Modo de cifrado. Valores válidos: ecb, cbc, ctr, cfb, ofb

salt

string

No

Un valor de salt

iv

string

No

El vector de inicialización

Valor de retorno

Devuelve un objeto AES (de tipo diccionario) si la operación se completa correctamente, o false si falla.

Ejemplo

A continuación se muestra cómo crear objetos AES en tres modos de cifrado: ECB-128, CBC-256 y OFB-256. Después, se cifra y se descifra una cadena de texto plano para comprobar que el proceso de ida y vuelta sea correcto.

aes_conf = []
plaintext = ''
if and($http_mode, eq($http_mode, 'ecb-128')) {
  set(aes_conf, 'key', 'ab8bfd9f-a1af-4ba2-bbb0-1ee520e3d8bc')
  set(aes_conf, 'salt', '1234567890')
  set(aes_conf, 'cipher_len', 128)
  set(aes_conf, 'cipher_mode', 'ecb')
  plaintext = 'hello aes ecb-128'
}
if and($http_mode, eq($http_mode, 'cbc-256')) {
  set(aes_conf, 'key', '146ebcc8-392b-4b3a-a720-e7356f62')
  set(aes_conf, 'cipher_len', 256)
  set(aes_conf, 'cipher_mode', 'cbc')
  set(aes_conf, 'iv', '0123456789abcdef')
  plaintext = 'hello aes cbc-256'
}
if and($http_mode, eq($http_mode, 'ofb-256')) {
  set(aes_conf, 'key', '146ebcc8-392b-4b3a-a720-e7356f62')
  set(aes_conf, 'cipher_len', 256)
  set(aes_conf, 'cipher_mode', 'ofb')
  set(aes_conf, 'iv', tochar(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))
  plaintext = 'hello aes ofb-256'
}

aes_obj = aes_new(aes_conf)
if not(aes_obj) {
  say(concat('aes obj failed'))
  exit(400)
}

ciphertext = aes_enc(aes_obj, plaintext)
plaintext_reverse = aes_dec(aes_obj, ciphertext)

say(concat('plain: ', plaintext))
say(concat('cipher: ', tohex(ciphertext)))
say(concat('plain_reverse: ', plaintext_reverse))

if ne(plaintext, plaintext_reverse) {
  say('plaintext ~= plaintext_reverse')
  exit(400)
}

aes_enc

Cifra una cadena de texto plano mediante AES.

Sintaxis

aes_enc(o, s)

Parámetros

Parámetro

Descripción

o

El objeto AES que devuelve aes_new()

s

El texto plano que se va a cifrar

Valor de retorno

Devuelve el texto cifrado después de procesar el texto especificado en el parámetro s.

Ejemplo

Consulte el ejemplo de aes_new para ver un flujo de trabajo completo de cifrado y descifrado.

aes_dec

Descifra una cadena de texto cifrado mediante AES.

Sintaxis

aes_dec(o, s)

Parámetros

Parámetro

Descripción

o

El objeto AES que devuelve aes_new()

s

El texto cifrado que se va a descifrar

Valor de retorno

Devuelve el texto plano después de descifrar el texto especificado en el parámetro s.

Ejemplo

Consulte el ejemplo de aes_new para ver un flujo de trabajo completo de cifrado y descifrado.

sha1

Calcula un resumen SHA-1.

Sintaxis

sha1(s)

Parámetros

Parámetro

Descripción

s

La cadena de entrada

Valor de retorno

Devuelve el resumen SHA-1 en formato binario. Utilice tohex() para convertirlo a una cadena hexadecimal.

Ejemplo

digest = sha1('hello sha')
say(concat('sha1:', tohex(digest)))

Salida:

sha1:853789bc783a6b573858b6cc9f913afe82962956

sha2

Calcula un resumen SHA-2.

Sintaxis

sha2(s, l)

Parámetros

Parámetro

Descripción

s

La cadena de entrada

l

La longitud del resumen en bits. Valores válidos: 224, 256, 384, 512

Valor de retorno

Devuelve el resumen SHA-2 en formato binario. Utilice tohex() para convertirlo a una cadena hexadecimal.

Ejemplo

digest = sha2('hello sha2', 224)
say(concat('sha2-224:', tohex(digest)))

digest = sha2('hello sha2', 256)
say(concat('sha2-256:', tohex(digest)))

digest = sha2('hello sha2', 384)
say(concat('sha2-384:', tohex(digest)))

digest = sha2('hello sha2', 512)
say(concat('sha2-512:', tohex(digest)))

Salida:

sha2-224:b24b7effcf53ce815ee7eb73c7382613aba1c334e2a1622655362927
sha2-256:af0425cee23c236b326ed1f008c9c7c143a611859a11e87d66d0a4c3217c7792
sha2-384:bebbdde9efabd4b9cf90856cf30e0b024dd13177d9367d2dcf8d7a04e059f92260f16b21e261358c2271be32086ef35b
sha2-512:a1d1aef051c198c0d26bc03500c177a315fa248cea815e04fbb9a75e5be5061617daab311c5e3d0b215dbfd4e83e73f23081242b0143dcdfce5cd92ec51394f7

hmac

Calcula un resumen HMAC con el algoritmo especificado.

Sintaxis

hmac(k, s, v)

Parámetros

Parámetro

Descripción

k

La clave HMAC

s

La cadena de entrada

v

El algoritmo de hash. Valores válidos: md5, sha1, sha256, sha512

Valor de retorno

Devuelve el resumen HMAC en formato binario. Utilice tohex() para convertirlo a una cadena hexadecimal.

Ejemplo

k = '146ebcc8-392b-4b3a-a720-e7356f62f87b'
v = 'hello mac'
say(concat('hmac(md5): ', tohex(hmac(k, v, 'md5'))))
say(concat('hmac(sha1): ', tohex(hmac(k, v, 'sha1'))))
say(concat('hmac(sha256): ', tohex(hmac(k, v, 'sha256'))))
say(concat('hmac(sha512): ', tohex(hmac(k, v, 'sha512'))))
say(concat('hmac_sha1(): ', tohex(hmac_sha1(k, v))))

Salida:

hmac(md5): 358cbfca8ad663b547c83748de2ea778
hmac(sha1): 5555633cef48c3413b68f9330e99357df1cc3d93
hmac(sha256): 7a494543cad3b92ce1e7c4bbc86a8f5212b53e4d661f7830f455847540a85771
hmac(sha512): 59d7c07996ff675b45bd5fd40a6122bb5f40f597357a9b4a9e29da6f5c7cb806798c016fe09cb46457b6df9717d26d0af19896f72eaf4296be03e3681fea59ad
hmac_sha1(): 5555633cef48c3413b68f9330e99357df1cc3d93

hmac_sha1

Calcula un resumen HMAC-SHA-1.

Sintaxis

hmac_sha1(k, s)

Parámetros

Parámetro

Descripción

k

La clave HMAC-SHA-1

s

La cadena de entrada

Valor de retorno

Devuelve el resumen HMAC-SHA-1 en formato binario. Utilice tohex() para convertirlo a una cadena hexadecimal.

Ejemplo

Consulte el ejemplo de hmac para ver una salida de ejemplo que incluye hmac_sha1().

md5

Calcula un resumen MD5 y lo devuelve como una cadena hexadecimal.

Sintaxis

md5(s)

Parámetros

Parámetro

Descripción

s

La cadena de entrada

Valor de retorno

Devuelve el resumen MD5 en formato hexadecimal.

Ejemplo

say(concat('md5: ', md5('hello md5')))

Salida:

md5: 741fc6b1878e208346359af502dd11c5

md5_bin

Calcula un resumen MD5 y lo devuelve en formato binario. Utilice esta función cuando necesite los bytes sin procesar; por ejemplo, como entrada para otra operación criptográfica.

Sintaxis

md5_bin(s)

Parámetros

Parámetro

Descripción

s

La cadena de entrada

Valor de retorno

Devuelve el resumen MD5 en formato binario. Utilice tohex() para convertirlo a una cadena hexadecimal.

Ejemplo

say(concat('md5_bin: ', tohex(md5_bin('hello md5'))))

Salida:

md5_bin: 741fc6b1878e208346359af502dd11c5