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.
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.
|
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.