EncryptData Method  
 

Encrypt the contents of the specified string or byte array.

Syntax

object.EncryptData( InputData, OutputData [, Password ])

Parameters

InputData
A string or byte array that contains the data to be encrypted.
OutputData
A string or byte array which will contain the encrypted data when the method returns. This parameter must be passed by reference. When specifying a Byte array, you must ensure the buffer is large enough to contain all of the decrypted data.
Password
An optional parameter that specifies the password that was used to encrypt the data. If this parameter is omitted, the value of the Password property will be used.

Return Value

This method returns the number of bytes of encrypted data copied into the output buffer. If the input buffer is a zero-length string or an empty array, the method will return zero. If an error occurs, the method will return -1. Check the value of the LastError property to determine the specific error that has occurred.

Remarks

The EncryptData method will encrypt the contents of a string or byte array using a 256-bit AES (Advanced Encryption Standard) algorithm and returns the encrypted data to the caller. The password (or passphrase) provided by the caller is used to generate a SHA-256 hash value which is used as part of the encryption process. An internal value is incorporated when deriving the encryption key to inhibit casual decryption using external tools. This method is intended as a convenience for encrypting application data using a password-derived key. It is not designed as a general-purpose encrypted data format for interoperability with other libraries or utilities. Applications should use the corresponding DecryptData method to decrypt the data.

It is recommended that most applications specify a password value. If the Password parameter specifies a zero-length string, any application using this method with an empty password will be able to decrypt the data using the DecryptData method without specifying a password. This behavior is intended for convenience and should not be considered secure for protecting sensitive data. Passwords are case-sensitive and must match exactly, including the use of any spaces.

Important

If the input buffer is a String type, the output buffer must also be a String. The text will be automatically encoded as UTF-8 and the encrypted data will be returned as a base64 encoded string. If the input buffer is a Byte array, the output buffer must also be a Byte array. Never attempt to encrypt or decrypt binary data using String variables. You must always use a Byte array for binary data.

If you wish to encrypt and decrypt the contents of a file, use the EncryptFile and DecryptFile methods.

This method uses the Microsoft CryptoAPI and the RSA AES cryptographic provider. This provider may not be available in some languages, countries or regions. The availability of this provider may also be constrained by cryptography export restrictions imposed by the United States or other countries. If the required cryptographic provider is not available, the method will fail.

See Also

CompressFile Method, DecryptData Method, ExpandData Method, ExpandFile Method