AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones Hash
  • Notas
  • Función HashString y UNICODE
  • Disponibilidad de algoritmos
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Calcula el Hash de una cadena de caracteres según un algoritmo específico. Puede calcular:
  • un simple hachís.
  • un hash con autenticación de mensajes.
  • un hash obtenido con una función de derivación de claves que toma una sal como parámetro (PBKDF2).
    WEBDEV - Código NavegadorAndroidWidget Android JavaPHP No disponible.
Recordatorio: El hashing se utiliza para resumir un archivo o una cadena de caracteres. Este resumen se llama Hash.
Atención: El resultado puede contener caracteres no visualizables. Si desea obtener una cadena con las representaciones hexadecimales de bytes (para usarla en una API REST o SOAP, por ejemplo), puede usar BufferToHexa con NoGrouping . 0069006e006700 constante en el búfer de resultados.
WindowsLinuxUniversal Windows 10 AppAndroidWidget Android iPhone/iPadIOS WidgetMac CatalystJavaPHP
// Calculate the Hash of values for two edit controls
Hash1 is Buffer = HashString(HA_MD5_128, EDT_Edit1)
Hash2 is Buffer = HashString(HA_MD5_128, EDT_Edit2)
// Compare the two Hash
IF Hash1 = Hash2 THEN Info("The two strings are identical.")
WEBDEV - Código Navegador
HashString(HA_SHA_160, "abc", HashString_Callback)

INTERNAL PROCÉDURE HashString_Callback(buffer)
// This code is used to view the buffer
Trace(BufferToHexa(buffer, NoGrouping))
END
Sintaxis

Calculando un simple hash Ocultar los detalles

<Result> = HashString(<Type of algorithm> , <String>)
<Result>: Buffer
Resultado del hashing con el algoritmo .
<Type of algorithm>: Constante de tipo Integer
Indica el tipo de algoritmo utilizado en el hash de :
Familia DJB2 (Bernstein)
  • HA_DJB2_32
  • HA_DJB2_64
JavaPHP Las constantes de esta familia no están disponibles.
MD4 familyHA_MD4
MD5 familyHA_MD5_128
Atención: este tipo de algoritmo está actualmente en desuso.
MURMUR family
  • HA_MURMUR_1: Algoritmo de soplo versión 1: Resultado hash de 32 bits
  • HA_MURMUR_2: Algoritmo de soplo versión 2: Resultado hash de 32 bits
  • HA_MURMUR_2_64A: Algoritmo de soplo versión 2: Resultado hash de 64 bits optimizado para procesadores de 64 bits
  • HA_MURMUR_2_64B: Algoritmo de soplo versión 2: Resultado hash de 64 bits optimizado para procesadores de 32 bits
  • HA_MURMUR_2_A: Algoritmo de murmullo incremental versión 2: Resultado hash de 32 bits
  • HA_MURMUR_2_BIG_ENDIAN: Algoritmo de murmullo versión 2 para máquina big-endian: Resultado hash de 32 bits
  • HA_MURMUR_2_ALIGNE: Algoritmo de soplo versión 2 para máquina alineada: Resultado hash de 32 bits
  • HA_MURMUR_3_32: Algoritmo de soplo versión 3: Resultado hash de 32 bits
  • HA_MURMUR_3_128_X86: Algoritmo de soplo versión 3: Resultado hash de 128 bits optimizado para procesadores de 32 bits
  • HA_MURMUR_3_128_X64: Algoritmo de soplo versión 3: Resultado hash de 128 bits optimizado para procesadores de 64 bits
Java Las constantes de esta familia no están disponibles.
RIPEMD family
  • HA_RIPEMD_128
  • HA_RIPEMD_160
Java Las constantes de esta familia no están disponibles.
Familia SHA
  • HA_SHA_160 (también llamado SHA-1)
  • HA_SHA_256 (especificaciones FIPS PUB 198)
  • HA_SHA_256_DOUBLE
  • HA_SHA_384
  • HA_SHA_512
Familia SHA-3
  • HA_SHA3_224
  • HA_SHA3_256
  • HA_SHA3_384
  • HA_SHA3_512
TIGER family
  • HA_TIGER_128
  • HA_TIGER_160
  • HA_TIGER_192
Java Las constantes de esta familia no están disponibles.
WHIRLPOOL familyHA_WHIRLPOOL
Java No disponible.
CKSUM family
  • HA_CKSUM_8
  • HA_CKSUM_16
  • HA_CKSUM_32
  • HA_CKSUM_64
Java Las constantes de esta familia no están disponibles.
  • Algoritmos MD4 / MD5 / SHA / RIPE: funciones de hash criptográficas estándar.
  • Algoritmos TIGER/WHIRLPOOL: funciones hash con altas propiedades criptográficas optimizadas para el modo de 64 bits (pero también se puede utilizar en el modo de 32 bits).
  • Algoritmos CKSUM: funciones de hash sin Property criptográfica, deben utilizarse para realizar comprobaciones de bajo nivel o con tablas de hash.
  • Algoritmo DJB2 (ámbar): Las funciones hash reservadas a las cadenas y sin Property criptográfica, deben utilizarse para realizar comprobaciones de bajo nivel o con tablas hashing. Pocos riesgos para get un hachís idéntico.
  • Algoritmo MURMUR: funciones de hash muy rápidas sin propiedades criptográficas. Este algoritmo es utilizado por el "filtro bloom" de los monederos bitcoin.
<String>: Cadena de caracteres
String sobre el que se realizará el cálculo. Este parámetro puede contener caracteres binarios.
WEBDEV - Código Navegador

Calculando un simple hash Ocultar los detalles

HashString(<Type of algorithm> , <String> , <WLanguage procedure>)
<Type of algorithm>: Constante de tipo Integer
Indica el tipo de algoritmo utilizado en el hash de :
Familia SHA
  • HA_SHA_160 (también llamado SHA-1)
  • HA_SHA_256 (especificaciones FIPS PUB 198)
  • HA_SHA_256_DOBLE
  • HA_SHA_384
  • HA_SHA_512

Observaciones:
  • Estos algoritmos hash no están permitidos en el Explorador de INTERNET.
  • El algoritmo HA_SHA_160 no está permitido en Edge.
<String>: Cadena de caracteres
String sobre el que se realizará el cálculo. Este parámetro puede contener caracteres binarios.
<WLanguage procedure>: Nombre de Procedure
Nombre del lenguaje WLanguage Procedure ("callback") llamado al realizar el hash. Este procedimiento permite obtener el resultado del hash. Para obtener más información, consulte Procedure utilizada por HashString.

Calculando un hash con autenticación de mensajes (algoritmo HMAC/MURMUR) Ocultar los detalles

<Result> = HashString(<Type of algorithm> , <String> , <Secret key>)
<Result>: Buffer
Resultado del hashing con el algoritmo . La longitud de esta cadena depende del algoritmo utilizado. Por ejemplo, si se utiliza la constante HA_HMAC_SHA_256, el resultado contendrá 32 bytes.
Atención: este resultado puede contener caracteres que no se pueden mostrar.
<Type of algorithm>: Constante de tipo Integer
Indica el tipo de algoritmo (HMAC o MURMUR) utilizado para el hash de :
MD4 familyHA_HMAC_MD4

MD5 familyHA_HMAC_MD5_128
Atención: este tipo de algoritmo está actualmente en desuso.
MURMUR family
  • HA_MURMUR_1: Algoritmo de soplo versión 1: Resultado hash de 32 bits
  • HA_MURMUR_2: Algoritmo de soplo versión 2: Resultado hash de 32 bits
  • HA_MURMUR_2_64A: Algoritmo de soplo versión 2: Resultado hash de 64 bits optimizado para procesadores de 64 bits
  • HA_MURMUR_2_64B: Algoritmo de soplo versión 2: Resultado hash de 64 bits optimizado para procesadores de 32 bits
  • HA_MURMUR_2_A: Algoritmo de murmullo incremental versión 2: Resultado hash de 32 bits
  • HA_MURMUR_2_BIG_ENDIAN: Algoritmo de murmullo versión 2 para máquina big-endian: Resultado hash de 32 bits
  • HA_MURMUR_2_ALIGNE: Algoritmo de soplo versión 2 para máquina alineada: Resultado hash de 32 bits
  • HA_MURMUR_3_32: Algoritmo de soplo versión 3: Resultado hash de 32 bits
  • HA_MURMUR_3_128_X86: Algoritmo de soplo versión 3: Resultado hash de 128 bits optimizado para procesadores de 32 bits
  • HA_MURMUR_3_128_X64: Algoritmo de soplo versión 3: Resultado hash de 128 bits optimizado para procesadores de 64 bits
Java Las constantes de esta familia no están disponibles.
RIPEMD family
  • HA_HMAC_RIPEMD_128
  • HA_HMAC_RIPEMD_160
Java Las constantes de esta familia no están disponibles.
Familia SHA
  • HA_HMAC_SHA_160
  • HA_HMAC_SHA_256
  • HA_HMAC_SHA_256_DOBLE
  • HA_HMAC_SHA_384
  • HA_HMAC_SHA_512
Familia SHA-3
  • HA_HMAC_SHA3_224
  • HA_HMAC_SHA3_256
  • HA_HMAC_SHA3_384
  • HA_HMAC_SHA3_512
TIGER family
  • HA_HMAC_TIGER_128
  • HA_HMAC_TIGER_160
  • HA_HMAC_TIGER_192
Java Las constantes de esta familia no están disponibles.
WHIRLPOOL familyHA_HMAC_WHIRLPOOL
Java No disponible.
  • Algoritmos MD4 / MD5 / SHA / RIPE: funciones de hash criptográficas estándar.
  • Algoritmos TIGER/WHIRLPOOL: funciones hash con altas propiedades criptográficas optimizadas para el modo de 64 bits (pero también se puede utilizar en el modo de 32 bits).
  • Algoritmo MURMUR: funciones de hash muy rápidas sin propiedades criptográficas. Este algoritmo es utilizado por el "filtro bloom" de los monederos bitcoin.
<String>: Cadena de caracteres
String sobre el que se realizará el cálculo. Este parámetro puede contener caracteres binarios.
<Secret key>: Cadena de caracteres o entero
Clave de autenticación del mensaje.
  • Si se utiliza un algoritmo HMAC, este parámetro debe ser un string.
  • Si se utiliza un algoritmo MURMUR, la clave debe ser un número entero.
AndroidWidget Android Java Este parámetro no debe ser una cadena vacía.
WEBDEV - Código Navegador

Calculando un hash con autenticación de mensajes (algoritmo HMAC) Ocultar los detalles

HashString(<Type of algorithm> , <String> , <Secret key> , <WLanguage procedure>)
<Type of algorithm>: Constante de tipo Integer
Indica el tipo de algoritmo (HMAC) utilizado para el hash de la cadena :
Familia SHA
  • HA_HMAC_SHA_160
  • HA_HMAC_SHA_256
  • HA_HMAC_SHA_384
  • HA_HMAC_SHA_512

Observaciones:
  • Estos algoritmos hash no están permitidos en el Explorador de INTERNET.
  • Estos algoritmos hash no están permitidos en Edge.
<String>: Cadena de caracteres
String sobre el que se realizará el cálculo. Este parámetro puede contener caracteres binarios.
<Secret key>: Cadena de caracteres
Clave de autenticación del mensaje.
<WLanguage procedure>: Nombre de Procedure
Nombre del lenguaje WLanguage Procedure ("callback") llamado al realizar el hash. Este procedimiento permite obtener el resultado del hash. Para obtener más información, consulte Procedure utilizada por HashString.
WindowsLinuxUniversal Windows 10 AppiPhone/iPadIOS WidgetMac Catalyst

Calcular un hash utilizando una función de derivación de claves que toma una sal como parámetro (PBKDF2) Ocultar los detalles

<Result> = HashString(<Type of algorithm> , <String> , <Salt> , <Iteration> , <Length>)
<Result>: Buffer
Resultado del hashing con el algoritmo .
Atención: este resultado puede contener caracteres que no se pueden mostrar. Si desea mostrar el resultado, lo puede convertir con la función BufferToHexa.
<Type of algorithm>: Constante de tipo Integer
Especifica el tipo de algoritmo pseudoaleatorio utilizado por PBKDF2 para el hash de :
MD4 familyHA_PBKDF2_HMAC_MD4
MD5 familyHA_PBKDF2_HMAC_MD5_128
Atención: este tipo de algoritmo está actualmente en desuso.
RIPEMD family
  • HA_PBKDF2_HMAC_RIPEMD_128
  • HA_PBKDF2_HMAC_RIPEMD_160
Familia SHA
  • HA_PBKDF2_HMAC_SHA_160
  • HA_PBKDF2_HMAC_SHA_256
  • HA_PBKDF2_HMAC_SHA_256_DOBLE
  • HA_PBKDF2_HMAC_SHA_384
  • HA_PBKDF2_HMAC_SHA_512
Familia SHA-3
  • HA_PBKDF2_HMAC_SHA3_224
  • HA_PBKDF2_HMAC_SHA3_256
  • HA_PBKDF2_HMAC_SHA3_384
  • HA_PBKDF2_HMAC_SHA3_512
TIGER family
  • HA_PBKDF2_HMAC_TIGER_128
  • HA_PBKDF2_HMAC_TIGER_160
  • HA_PBKDF2_HMAC_TIGER_192
WHIRLPOOL familyHA_PBKDF2_HMAC_WHIRLPOOL
  • Algoritmos MD4 / MD5 / SHA / RIPE: funciones de hash criptográficas estándar.
  • Algoritmos TIGER/WHIRLPOOL: funciones hash con altas propiedades criptográficas optimizadas para el modo de 64 bits (pero también se puede utilizar en el modo de 32 bits).
<String>: Cadena de caracteres
String sobre el que se realizará el cálculo. Este parámetro puede contener caracteres binarios.
<Salt>: Cadena de caracteres
Sal criptográfica utilizada. Cadena (normalmente aleatoria) añadida a la cadena original para hacerla más compleja. Por ejemplo, hace posible que dos usuarios utilicen la misma contraseña.
<Iteration>: Integro
Número de iteraciones del algoritmo (10000 por Default). Este número depende de la potencia de la máquina de computación y de la complejidad del hash. En general, se recomienda un mínimo de 1000 iteraciones.
<Length>: Integro
Longitud de la clave derivada. Por Default, corresponde al tamaño de la clave generada por la función pseudoaleatoria. Esta longitud es técnicamente ilimitada, pero debido al algoritmo, está limitada a (2^32 - 1) * (longitud de salida del algoritmo utilizado por PBKDF2).
Observaciones

Notas

  • Dos cadenas de caracteres idénticos tendrán, para el mismo tipo de algoritmo, dos Hashes idénticos.
  • El resultado del Hash puede contener caracteres no visualizables. Estos caracteres no serán Visible cuando se utilice Info o rastro, por ejemplo.

Función HashString y UNICODE

  • Atención: Las funciones Hash operan sobre los bytes que se encuentran en las cadenas de caracteres. Para el mismo tipo de algoritmo, el resultado será diferente en UNICODE y en ANSI.
  • Desarrollo multiplataforma: Para utilizar el Hash de cadenas entre varias plataformas (un hash generado en iOS y comprobado en Android o Windows por ejemplo), no se debe utilizar ninguna cadena Unicode. En efecto, las cadenas Unicode no tienen el mismo formato según las plataformas. En este caso, le aconsejamos que utilice cadenas en formato ANSI o UTF 8 (y que convierta las cadenas Unicode si es necesario)..
JavaPHP

Disponibilidad de algoritmos

PHP Los algoritmos están disponibles dependiendo de la configuración del servidor PHP ('mhash' extension, PHP 5 con función hash nativa, etc).
Java Sólo se soportan los siguientes algoritmos:
  • HA_HMAC_MD5_128
  • HA_HMAC_SHA_160, HA_HMAC_SHA_256, HA_HMAC_SHA_384, HA_SHA_HMAC_512
  • HA_HMAC_SHA_256_DOUBLE
  • HA_MD4
  • HA_MD5_128
  • HA_SHA_160, HA_SHA_256, HA_SHA_384, HA_SHA_512
  • HA_SHA_256_DOUBLE
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd290com.dll
Versión mínima requerida
  • Versión 11
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 23/11/2023

Señalar un error o enviar una sugerencia | Ayuda local