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 de cifrado/compresión
  • Formato binario de una cadena encriptada
  • Cifrado y descifrado de un archivo externo
  • Cifrado en Android/Java y descifrado por una aplicación WINDEV (o a la inversa)
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
Advertencia
A partir de la versión 22, esta función se conserva por motivos de compatibilidad con versiones anteriores. Para mayor seguridad, le recomendamos que utilice EncryptStandard.
Cifra una cadena de caracteres en formato binario o en formato ASCII.
Observaciones:
  • Esta cadena de caracteres puede ser descifrada por Descifrar.
  • Si el cifrado y el descifrado se realizan en plataformas diferentes (cifrado en Android y descifrado en Windows, por ejemplo), utilice EncryptStandard y DecryptStandard. Para más detalles, consulte el apartado "Observaciones".
Ejemplo
// Encrypt a string
Res = Encrypt("My credit card number is 52327453829011", "Password")
// Encode a string in base 64
bufBase64 is Buffer = Encrypt(bufToEncode, "", compressNone + cryptNone, encodeBASE64)
Sintaxis
<Result> = Encrypt(<String to encrypt> , <Password> [, <Type of encryption> [, <Format of encrypted string>]])
<Result>: Cadena de caracteres
  • Cadena de caracteres encriptada,
  • Cadena vacía ("") si se produce un error. Para obtener más información sobre el error, utilice la función ErrorInfo.
<String to encrypt>: Cadena de caracteres
Texto a cifrar.
<Password>: Cadena de caracteres
Contraseña utilizada para encriptar la cadena de caracteres. Esta contraseña se utilizará para descifrar la cadena cifrada (Descifrar). Una contraseña larga optimiza la seguridad del cifrado.
<Type of encryption>: Constante o combinación de constantes opcional
Indica el tipo de cifrado y/o compresión:
  • Tipo de cifrado:
    cryptAnsiLa encriptación es idéntica a la realizada en una aplicación WINDEV o WEBDEV.. useful para las aplicaciones que cifran en WINDEV Mobile y que descifran en WINDEV por ejemplo.
    Para usar esta constante, el parámetro <Format of encrypted string> debe corresponder a la constante encodePCS.
    Observación: Si la constante cryptAnsi no se combina con otra constante que especifique el tipo de cifrado, se ignora el parámetro <Password>.
    Esta constante solo se puede utilizar en WINDEV Mobile para Windows CE.
    AndroidWidget Android iPhone/iPad Esta constante no tiene ningún efecto.
    cryptFast
    (Valor predeterminado)
    Se da prioridad a la velocidad de encriptación (algoritmo sobre 128 bits).
    AndroidWidget Android Esta constante no está disponible.
    cryptNoneNo se realiza encriptación
    cryptRC516Se da prioridad a la seguridad del cifrado (algoritmo RC5 en 16 rondas)..
    AndroidWidget Android Esta constante no tiene ningún efecto.
    cryptSecureSe da prioridad a la seguridad del cifrado (algoritmo RC5 en 128 bits)..
    AndroidWidget Android El algoritmo utilizado será un algoritmo PBE (Password Based Encryption).
  • Tipo de compresión:
    compressLZWLa cadena se comprime antes de ser encriptada.
    AndroidWidget Android Esta constante no tiene ningún efecto.
    compressNone
    (Valor predeterminado)
    No se realiza ninguna compresión.
    AndroidWidget Android Esta constante no tiene ningún efecto.
    compressShortStringLa cadena se comprime a través de un algoritmo optimizado para las cadenas de caracteres cortos.. Esta compresión solo será efectiva si se selecciona la constante cryptNone y si <Format of encrypted string> corresponde a la constante encodeNone.
    AndroidWidget Android Esta constante no tiene ningún efecto.
<Format of encrypted string>: Constante opcional de tipo Integer
Indica el formato de la cadena encriptada:
encodeBASE64Formato BASE 64. El archivo está encriptado con el algoritmo BASE64. El archivo cifrado será más grande (alrededor del 30%) que el archivo inicial..
Para realizar una codificación en base 64, también tiene la posibilidad de usar Codifica asociado con la constante encodeBASE64 o encodeBASE64URL.
El formato base64 puede utilizarse para insertar un archivo cifrado en el cuerpo de Email, por ejemplo.
encodeNoneFormato binario. El archivo cifrado puede contener caracteres no imprimibles. El archivo será más grande (unos 4 bytes) que el archivo inicial.
encodePCS
(Valor predeterminado)
Formato ASCII. El archivo encriptado contendrá sólo caracteres imprimibles. El archivo cifrado será más grande (alrededor del 30%) que el archivo inicial..
Este formato puede utilizarse para insertar un archivo cifrado en el cuerpo de Email, por ejemplo.
encodeUUEncodeFormato UUEncode. El archivo está encriptado con el algoritmo UUEncode. El archivo cifrado será más grande (alrededor del 30%) que el archivo inicial..
Este formato puede utilizarse para insertar un archivo cifrado en el cuerpo de Email, por ejemplo.
AndroidWidget Android Este parámetro no se tiene en cuenta. La cadena encriptada estará en formato BASE 64.
Observaciones
Universal Windows 10 App

Formato binario de una cadena encriptada

La cadena cifrada debe manipularse correctamente cuando <Format of encrypted string> corresponde a la constante encodeNone. De hecho, esta cadena encriptada puede contener caracteres de fin de cadena. En este caso, la cadena será truncada por las operaciones de visualización.
Parte de la información encriptada se perderá si:
  1. La cadena encriptada se muestra en un control.
  2. El valor de esta control se utiliza para el descifrado.
Sin embargo, no se perderá ninguna información si la cadena cifrada se maneja como una cadena Variable.

Cifrado y descifrado de un archivo externo

Para cifrar/descifrar un archivo externo, utilice fEncrypt y fDecrypt.
Android

Cifrado en Android/Java y descifrado por una aplicación WINDEV (o a la inversa)

Atención: los algoritmos de encriptación/desencriptación utilizados en Java y Android difieren de los utilizados por WINDEV. Por lo tanto, no se puede cifrar una cadena de caracteres en Java o Android y descifrarla con WINDEV (e inversamente).
Para cifrar una cadena de caracteres en Java o Android y descifrarla con WINDEV (o a la inversa), utilice EncryptStandard y DecryptStandard.
Componente: wd290std.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
exemplo com fonte
https://repository.windev.com/resource.awp?file_id=281474976711928;exemplo-cryptografia-descryptografia
Boller
15 03 2024
LINK Exemplos
https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/4235-comandos-criptografia-descriptografia-para-usar-windev-webdev-windev/read.awp
Boller
15 03 2024
Example Encripta
//https://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/2251-about-cryptstandart-and-uncryptstandart-2254/read.awp

Encripta(St is string, Pw is string)
x is string
i is int
n is int
p is int
j is int
//n0 is int
ok is boolean

p = 0

FOR i = 1 TO Length(St)
p += 1
IF p > Length(Pw) THEN p = 1
j = Asc(Middle(Pw, p, 1)) OR 128
n = Asc(Middle(St, i))

ok = False

WHILE ok = False
n = BinaryXOR(n, j) //encripta...
IF n < 31 THEN //se char de controle
n = (128 + n) //somar 128 e
//GoTo DeNovo //ecripta novamente
ELSE IF n > 127 AND n < 159 THEN //se nesta faixa pode ser char de controle
n = n - 128 //tira 128 e
//GoTo DeNovo //encripta novamente
ELSE
ok = True
END
END
x = x + Charact(n) //concatena string encriptada


END

RESULT x
BOLLER
05 04 2017

Última modificación: 23/06/2023

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