PC SOFT

ONLINE HELP
FOR WINDEV, WEBDEV AND WINDEV MOBILE

Home | Sign in | English US

  • Binary format of an encrypted string
  • Encrypting and decrypting an external file
  • Encryption in PHP
  • Encryption in Android/Java and decryption by a WINDEV application (or conversely)
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Warning
From version 22, this function is kept for backward compatibility. For better security, we recommend that you use CryptStandard.
Encrypts a character string in binary format or in ASCII format.
Notes:
  • This character string can be decrypted by Uncrypt.
  • Versions 20 and later
    If the encryption and the decryption are performed on different platforms (encryption in Android and decryption in Windows for example), use CryptStandard and UncryptStandard. See "Remarks" for more details.
    New in version 20
    If the encryption and the decryption are performed on different platforms (encryption in Android and decryption in Windows for example), use CryptStandard and UncryptStandard. See "Remarks" for more details.
    If the encryption and the decryption are performed on different platforms (encryption in Android and decryption in Windows for example), use CryptStandard and UncryptStandard. See "Remarks" for more details.
Versions 15 and later
Android This function is now available for the Android applications.
New in version 15
Android This function is now available for the Android applications.
Android This function is now available for the Android applications.
Versions 16 and later
PHP This function is now available for the PHP sites.
WINDEVLinux This function is now available for the WINDEV applications in Linux.
New in version 16
PHP This function is now available for the PHP sites.
WINDEVLinux This function is now available for the WINDEV applications in Linux.
PHP This function is now available for the PHP sites.
WINDEVLinux This function is now available for the WINDEV applications in Linux.
Versions 17 and later
iPhone/iPad This function is now available for the iPhone/iPad applications.
New in version 17
iPhone/iPad This function is now available for the iPhone/iPad applications.
iPhone/iPad This function is now available for the iPhone/iPad applications.
Versions 18 and later
Android Widget This function is now available in Android Widget mode.
Universal Windows 10 App This function is now available in Windows Store apps mode.
New in version 18
Android Widget This function is now available in Android Widget mode.
Universal Windows 10 App This function is now available in Windows Store apps mode.
Android Widget This function is now available in Android Widget mode.
Universal Windows 10 App This function is now available in Windows Store apps mode.
Versions 21 and later
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
New in version 21
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
Universal Windows 10 App This function is now available in Universal Windows 10 App mode.
// Encrypt a string
Res = Crypt("My credit card number is 52327453829011", "Password")
// Encode a string in base 64
bufBase64 is Buffer = Crypt(bufToEncode, "", compressNone + cryptNone, encodeBASE64)
Syntax
<Result> = Crypt(<String to Encrypt> , <Password> [, <Type of Encryption> [, <Format of Encrypted String>]])
<Result>: Character string
  • Encrypted character string,
  • Empty string ("") if an error occurred. To find out the error details, use ErrorInfo.
<String to Encrypt>: Character string (with quotes)
Text to encrypt.
<Password>: Character string (with quotes)
Password used to encrypt the character string. This password will be used to decrypt the encrypted string (Uncrypt). A long password optimizes the encryption security.
<Type of Encryption>: Optional constant (or combination of constants)
Indicates the type of encryption and/or compression:
  • Type of encryption:
    cryptAnsiThe encryption is identical to the one performed in a WINDEV or WEBDEV application. Useful for the applications that encrypt in WINDEV Mobile and that decrypt in WINDEV for example.
    To use this constant, <Format of Encrypted String> must correspond to the encodePCS constant.
    Note: If the cryptAnsi constant is not combined with another constant specifying the type of encryption, the <Password> parameter is ignored.
    This constant can only be used in WINDEV Mobile for Windows CE.
    WINDEVWEBDEV - Server codeAndroidAndroid Widget iPhone/iPadJavaPHP This constant has no effect.
    cryptNoneNo encryption is performed
    cryptFast
    (Default value)
    Priority is given to the encryption speed (algorithm on 128 bits).
    Java The algorithm used will be a Blowfish algorithm.
    AndroidAndroid Widget This constant is not available.
    Versions 16 and later
    PHP The algorithm used will be a Blowfish algorithm with 16 rounds.
    New in version 16
    PHP The algorithm used will be a Blowfish algorithm with 16 rounds.
    PHP The algorithm used will be a Blowfish algorithm with 16 rounds.
    cryptRC516Priority is given to the encryption security (RC5 algorithm on 16 rounds).
    AndroidAndroid Widget JavaPHP This constant has no effect.
    cryptSecurePriority is given to the encryption security (RC5 algorithm on 128 bits).
    AndroidAndroid Widget Java The algorithm used will be a PBE algorithm (Password Based Encryption).
    Versions 16 and later
    PHP The algorithm used will be a 128-bit RINJDAEL algorithm.
    New in version 16
    PHP The algorithm used will be a 128-bit RINJDAEL algorithm.
    PHP The algorithm used will be a 128-bit RINJDAEL algorithm.
  • Type of compression:
    compressNone
    (Default value)
    No compression is performed.
    AndroidAndroid Widget JavaPHP This constant has no effect.
    compressShortStringThe string will be compressed via an algorithm optimized for the short character strings. This compression will be efficient only if the cryptNone constant is selected and if <Format of Encrypted String> corresponds to the encodeNone constant.
    AndroidAndroid Widget JavaPHP This constant has no effect.
    compressLZWThe string will be compressed before it is encrypted.
    AndroidAndroid Widget JavaPHP This constant has no effect.
<Format of Encrypted String>: Optional Integer constant
Indicates the format of encrypted string:
encodePCS
(Default value)
ASCII format. The encrypted file will contain printable characters only. The encrypted file will be larger (about 30%) than the initial file.
This format can be used to insert an encrypted file into the email body for example.
encodeNoneBinary format. The encrypted file may contain non-printable characters. The file will be larger (about 4 bytes) than the initial file.
encodeBASE64BASE 64 format. The file is encrypted with the BASE64 algorithm. The encrypted file will be larger (about 30%) than the initial file.
To perform an encoding in base 64, you also have the ability to use Encode associated with the encodeBASE64 or encodeBASE64URL constant.
The base64 format can be used to insert an encrypted file into the email body for example.
encodeUUEncodeUUEncode format. The file is encrypted with the UUEncode algorithm. The encrypted file will be larger (about 30%) than the initial file.
This format can be used to insert an encrypted file into the email body for example.
AndroidAndroid Widget Java This parameter is ignored. The encrypted string will be in BASE 64 format.
Remarks
WINDEVWEBDEV - Server codeReports and QueriesWindows MobileUniversal Windows 10 AppPHPAjaxUser code (UMC)

Binary format of an encrypted string

The encrypted string must be handled with great care when <Format of Encrypted String> corresponds to the encodeNone constant. Indeed, this encrypted string may contain end of string characters. In this case, the string will be truncated by the display operations.
Part of the encrypted information will be lost if:
  1. The encrypted string is displayed in a control.
  2. The value of this control is used for the decryption.
However, no information will be lost if the encrypted string is handled as a string variable.

Encrypting and decrypting an external file

To encrypt/decrypt an external file, use fCrypt and fUncrypt.
PHP

Encryption in PHP

In PHP, the BlowFish encryption (cryptFast constant) and the RINJDAEL encryption (cryptSecure constant) are based on the MCrypt library. This library is commonly used by the PHP hosting companies and therefore it is always enabled. This library can be downloaded from the PHP site.
To enable (if necessary) this library locally, the following elements are required:
  • PHP installed.
  • the PHP.INI file found in the Windows directory must include the "extension=php_mcrypt.dll" line.
  • the php_mcrypt.dll file must exist in the directory of PHP extensions. This directory is defined in the PHP.INI file by the "extension_dir" variable.
AndroidJava

Encryption in Android/Java and decryption by a WINDEV application (or conversely)

Caution: the encryption/decryption algorithms used in Java and Android differ from the ones used by WINDEV. Therefore, you cannot encrypt a character string in Java or Android and decrypt it with WINDEV (and conversely).
Versions 20 and later
To encrypt a character string in Java or Android and to decrypt it with WINDEV (or conversely), use CryptStandard and UncryptStandard.
New in version 20
To encrypt a character string in Java or Android and to decrypt it with WINDEV (or conversely), use CryptStandard and UncryptStandard.
To encrypt a character string in Java or Android and to decrypt it with WINDEV (or conversely), use CryptStandard and UncryptStandard.
Related Examples:
The Crypt functions Unit examples (WEBDEV): The Crypt functions
[ + ] This example explains how to use the encryption/decryption functions of WEBDEV. This example allows you to:
- Encrypt a character string
- Decrypt a character string
The Crypt functions Unit examples (WINDEV): The Crypt functions
[ + ] Using the encryption/decryption functions of WINDEV.
This example is used to:
- Encrypt a character string
- Decrypt a character string
The Crypt functions Unit examples (WINDEV Mobile): The Crypt functions
[ + ] Using the WLanguage encryption and decryption functions.
This example is used to:
- Encrypt a character string
- Decrypt a character string
WD Evaluation period Training (WINDEV): WD Evaluation period
[ + ] This example explains how to limit the use of an application to a given period (evaluation period).
The following topics are presented in this example:
1/ the protection of an application for a given duration
2/ the management of the registry

Summary of the example supplied with WINDEV:
When this example is started for the first time, it is activated for an evaluation period set to 5 days.
The information regarding the date when it was first started is stored in the registry and a control key is used to check whether this date was not modified by the end user. At the end of the evaluation period, the application is locked, unless the end user provides the code for unlocking the application
Components
WINDEVWEBDEV - Server codeReports and Queries wd230std.dll
Windows Mobile wp230std.dll
Java wd230java.jar
Linux wd230std.so
Android wd230android.jar
Minimum required version
  • Version 9
This page is also available for…
Comments
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
Apr. 05 2017