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
  • Disponibilidad de algoritmos
  • Función HashCheckString y UNICODE
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
Comprueba el guión de una cadena de caracteres para un tipo específico de algoritmo.. Tiene la capacidad de comprobar:
  • 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.
Ejemplo
WindowsLinuxUniversal Windows 10 AppAndroidWidget Android iPhone/iPadIOS WidgetMac CatalystJavaPHP
// Check password:
// - Password typed in the "EDT_TypePassword" control
// - The password Hash is found in the "User.HashPassword" item
IF HashCheckString(HA_MD5_128, EDT_TypePassword, ...
User.HashPassword) = True THEN
Info("Password OK.")
// Rest of process
// ...
ELSE
Error("Wrong password.")
// Resume the input
SetFocusAndReturnToUserInput(EDT_TypePassword)
END
WEBDEV - Código Navegador
sHash is string = "9F 04 F4 1A 84 85 14 16 20 50 E3 D6"
HashCheckString(HA_SHA_160, "abc", HexaToBuffer(sHash), HashCheckString_Callback)
 
INTERNAL PROCEDURE HashCheckString_Callback(bRes boolean)
IF bRes = False THEN Trace("Error during verification")
END
Sintaxis

Comprobando un simple hachís Ocultar los detalles

<Result> = HashCheckString(<Type of algorithm> , <String> , <Hash>)
<Result>: booleano
  • True si el resultado del hash de la cadena <Cadena> mediante el algoritmo <Tipo de algoritmo> corresponde al parámetro <Hash>,
  • False en caso contrario.
<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
Cadena para la que se comprobará el Hash.
<Hash>: Cadena de caracteres
Una pizca de cuerda para comprobar. Este Hash debe ser el resultado de HashString previamente llamado para <Cadena> utilizando el <Tipo de algoritmo>..
WEBDEV - Código Navegador

Comprobando un simple hachís Ocultar los detalles

HashCheckString(<Type of algorithm> , <String> , <Hash> , <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
Cadena para la que se comprobará el Hash.
<Hash>: Cadena de caracteres
Una pizca de cuerda para comprobar. Este Hash debe ser el resultado de HashString previamente llamado para <Cadena> utilizando el <Tipo de algoritmo>..
<WLanguage procedure>: Nombre de Procedure
Nombre del WLanguage Procedure ("callback") llamado cuando hashing. Este procedimiento permite obtener el resultado del hash. Para obtener más información, consulte Procedure utilizada por HashCheckString.

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

<Result> = HashCheckString(<Type of algorithm> , <String> , <Hash> , <Secret key>)
<Result>: booleano
  • True si el resultado del hash de la cadena <Cadena> mediante el algoritmo <Tipo de algoritmo> corresponde al parámetro <Hash>,
  • False en caso contrario.
<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
Cadena para la que se comprobará el Hash.
<Hash>: Cadena de caracteres
Una pizca de cuerda para comprobar. Este Hash debe ser el resultado de HashString previamente llamado para <Cadena> utilizando el <Tipo de algoritmo>.
<Secret key>: Cadena de caracteres o entero
Clave de autenticación del mensaje. Esta clave debe ser idéntica a la utilizada para calcular el Hash.
AndroidWidget Android Java Este parámetro no debe ser una cadena vacía.
WEBDEV - Código Navegador

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

HashCheckString(<Type of algorithm> , <String> , <Hash> , <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
Cadena para la que se comprobará el Hash.
<Hash>: Cadena de caracteres
Una pizca de cuerda para comprobar. Este Hash debe ser el resultado de HashString previamente llamado para <Cadena> utilizando el <Tipo de algoritmo>.
<Secret key>: Cadena de caracteres o entero
Clave de autenticación del mensaje. Esta clave debe ser idéntica a la utilizada para calcular el Hash.
<WLanguage procedure>: Nombre de Procedure
Nombre del WLanguage Procedure ("callback") llamado cuando hashing. Este procedimiento permite obtener el resultado del hash. Para obtener más información, consulte Procedure utilizada por HashCheckString.
WindowsLinuxUniversal Windows 10 AppiPhone/iPadIOS WidgetMac Catalyst

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

HashCheckString(<Type of algorithm> , <String> , <Hash> , <Salt> , <Iteration> , <Length>)
<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
Cadena para la que se comprobará el Hash.
<Hash>: Cadena de caracteres
Una pizca de cuerda para comprobar. Este Hash debe ser el resultado de HashString previamente llamado para <Cadena> utilizando el <Tipo de algoritmo>.
<Salt>: Cadena de caracteres
Sal criptográfica idéntica a la utilizada para calcular el Hash.
<Iteration>: Integro
Número de iteraciones del algoritmo. Este parámetro debe ser idéntico al utilizado para calcular el Hash.
<Length>: Integro
Longitud de la clave derivada. Este parámetro debe ser idéntico al utilizado para calcular el Hash.
Observaciones
JavaPHP

Disponibilidad de algoritmos

PHP Los algoritmos están disponibles dependiendo de la configuración del servidor PHP (extensión'mhash', 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

Función HashCheckString y UNICODE

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)..
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: 27/05/2022

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