PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Formato binario de una cadena encriptada
  • Cifrado y descifrado de un archivo externo
  • Cifrado en PHP
  • 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/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Advertencia
A partir de la versión 22, esta función se mantiene para la compatibilidad con versiones anteriores. Para mayor seguridad, le recomendamos que utilice EncryptStandard.
Cifra una cadena de caracteres en formato binario o en formato ASCII.
Notas:
  • Esta cadena de caracteres se puede descifrar mediante Descifrar.
  • Versiones 20 y posteriores
    Si la encriptación y el descifrado se realizan en diferentes plataformas (encriptación en Android y descifrado en Windows, por ejemplo), use EncryptStandard y DecryptStandard. Ver "Observaciones" para más detalles.
    Nueva funcionalidad versión 20
    Si la encriptación y el descifrado se realizan en diferentes plataformas (encriptación en Android y descifrado en Windows, por ejemplo), use EncryptStandard y DecryptStandard. Ver "Observaciones" para más detalles.
    Si la encriptación y el descifrado se realizan en diferentes plataformas (encriptación en Android y descifrado en Windows, por ejemplo), use EncryptStandard y DecryptStandard. Ver "Observaciones" para más detalles.
Versiones 15 y posteriores
Android Esta función ahora está disponible para aplicaciones Android.
Nueva funcionalidad versión 15
Android Esta función ahora está disponible para aplicaciones Android.
Android Esta función ahora está disponible para aplicaciones Android.
Versiones 16 y posteriores
PHP Esta función ahora está disponible para sitios PHP.
WINDEVLinux Esta función ahora está disponible para aplicaciones WINDEV en Linux.
Nueva funcionalidad versión 16
PHP Esta función ahora está disponible para sitios PHP.
WINDEVLinux Esta función ahora está disponible para aplicaciones WINDEV en Linux.
PHP Esta función ahora está disponible para sitios PHP.
WINDEVLinux Esta función ahora está disponible para aplicaciones WINDEV en Linux.
Versiones 17 y posteriores
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Nueva funcionalidad versión 17
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Versiones 18 y posteriores
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Nueva funcionalidad versión 18
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Widget Android Esta función ahora está disponible en modo Android Widget.
Universal Windows 10 App Esta función ahora está disponible en modo Windows Store apps.
Versiones 21 y posteriores
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
Universal Windows 10 App Esta función ahora está disponible en modo Universal Windows 10 App.
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> = Encriptar(<String to encrypt> , <Contraseña> [, <Type of encryption> [, <Format of encrypted string>]])
<Result>: Character string
  • Cadena de caracteres encriptada,
  • Vaciar la cadena (""") si se ha producido un error. Para conocer los detalles del error, utilice ErrorInfo.
<String to encrypt>: Character string (with quotes)
Texto a cifrar.
<Contraseña>: Character string (with quotes)
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>: Optional constant (or combination of constants)
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.. Útil para las aplicaciones que encriptan en WINDEV Mobile y que desencriptan en WINDEV por ejemplo.
    Para utilizar esta constante, <Formato de la cadena cifrada> debe corresponder a la constante codificarPCS constante.
    Nota: Si el cryptAnsi no se combina con otra constante que especifique el tipo de cifrado, se ignora el parámetro <Password>..
    Esta constante sólo se puede utilizar en WINDEV Mobile para Windows CE.
    WINDEVWEBDEV - Código ServidorAndroidWidget Android iPhone/iPadJavaPHP Esta constante no tiene ningún efecto.
    cryptNoneNo se realiza encriptación
    cryptFast
    (Valor predeterminado)
    Se da prioridad a la velocidad de encriptación (algoritmo sobre 128 bits).
    Java El algoritmo utilizado será un algoritmo de Blowfish.
    AndroidWidget Android Esta constante no está disponible.
    Versiones 16 y posteriores
    PHP El algoritmo utilizado será un algoritmo de Blowfish con 16 rondas.
    Nueva funcionalidad versión 16
    PHP El algoritmo utilizado será un algoritmo de Blowfish con 16 rondas.
    PHP El algoritmo utilizado será un algoritmo de Blowfish con 16 rondas.
    criptaRC516Se da prioridad a la seguridad del cifrado (algoritmo RC5 en 16 rondas)..
    AndroidWidget Android JavaPHP Esta constante no tiene ningún efecto.
    cryptSecureSe da prioridad a la seguridad del cifrado (algoritmo RC5 en 128 bits)..
    AndroidWidget Android Java El algoritmo utilizado será un algoritmo PBE (Password Based Encryption).
    Versiones 16 y posteriores
    PHP El algoritmo utilizado será un algoritmo RINJDAEL de 128 bits.
    Nueva funcionalidad versión 16
    PHP El algoritmo utilizado será un algoritmo RINJDAEL de 128 bits.
    PHP El algoritmo utilizado será un algoritmo RINJDAEL de 128 bits.
  • Tipo de compresión:
    compressNinguna
    (Valor predeterminado)
    No se realiza ninguna compresión.
    AndroidWidget Android JavaPHP 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 sólo será eficaz si la cryptNone y si <Formato de la cadena cifrada> corresponde a la constante encodeNinguna constante.
    AndroidWidget Android JavaPHP Esta constante no tiene ningún efecto.
    comprimirLZWLa cadena se comprime antes de ser encriptada.
    AndroidWidget Android JavaPHP Esta constante no tiene ningún efecto.
<Format of encrypted string>: Optional Integer constant
Indica el formato de la cadena encriptada:
codificarPCS
(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 se puede utilizar para insertar un archivo cifrado en el cuerpo del correo electrónico, por ejemplo.
encodeNingunaFormato binario. El archivo cifrado puede contener caracteres no imprimibles. El archivo será más grande (unos 4 bytes) que el archivo inicial.
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 capacidad de usar Encode la opción encodeBASE64 o encodeBASE64URL ininterrumpido.
El formato base64 se puede utilizar para insertar un archivo cifrado en el cuerpo del correo electrónico, 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 se puede utilizar para insertar un archivo cifrado en el cuerpo del correo electrónico, por ejemplo.
AndroidWidget Android Java Este parámetro se ignora. La cadena encriptada estará en formato BASE 64.
Observaciones
WINDEVWEBDEV - Código ServidorReportes y ConsultasWindows MobileUniversal Windows 10 AppPHPAjaxCódigo de Usuario (UMC)

Formato binario de una cadena encriptada

La cadena encriptada debe ser manejada con mucho cuidado cuando <Formato de la cadena encriptada> corresponde a la variable encodeNinguna ininterrumpido. 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 este control se utiliza para el descifrado.
Sin embargo, no se perderá ninguna información si la cadena encriptada se maneja como una variable de cadena.

Cifrado y descifrado de un archivo externo

Para cifrar/descifrar un archivo externo, use fEncrypt y fDecrypt.
PHP

Cifrado en PHP

En PHP, la encriptación BlowFish (cryptFast ) y la encriptación RINJDAEL (cryptSecure ) se basan en la librería MCrypt. Esta librería es comúnmente usada por las compañías de alojamiento PHP y por lo tanto siempre está habilitada.. Esta biblioteca se puede descargar desde el sitio web de PHP.
Para habilitar (si es necesario) esta biblioteca localmentese requieren los siguientes elementos:
  • PHP instalado.
  • el archivo PHP.INI que se encuentra en el directorio de Windows debe incluir la línea "extension=php_mcrypt.dll".
  • el archivo php_mcrypt.dll debe existir en el directorio de extensiones PHP. Este directorio está definido en el archivo PHP.INI por la variable "extension_dir".
AndroidJava

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

Atención: los algoritmos de cifrado/descifrado utilizados en Java y Android difieren de los utilizados por WINDEV. Por lo tanto, no puede cifrar una cadena de caracteres en Java o Android y descifrarla con WINDEV (y viceversa)..
Versiones 20 y posteriores
Para cifrar una cadena de caracteres en Java o Android y descifrarla con WINDEV (o a la inversa), use EncryptStandard y DecryptStandard.
Nueva funcionalidad versión 20
Para cifrar una cadena de caracteres en Java o Android y descifrarla con WINDEV (o a la inversa), use EncryptStandard y DecryptStandard.
Para cifrar una cadena de caracteres en Java o Android y descifrarla con WINDEV (o a la inversa), use EncryptStandard y DecryptStandard.
Componente : wd240std.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
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