Encrypts a string. Uses a symmetric key-based algorithm, in
which the same key is used to encrypt and decrypt a string.
The security of the encrypted string depends on maintaining
the secrecy of the key. Uses an XOR-based algorithm that uses
a pseudo-random 32-bit key, based on a seed passed by the user
as a function parameter.
string.encrypt( key=string, algorithm=string, encoding=string, IVorSalt=any, iterations=number, precise=boolean )
Returns: String
Argument |
Description |
key
string,
required
|
Key or seed used to encrypt the string.
- For the CFMX_COMPAT algorithm, any combination of any number of characters; used as a seed used to generate a 32-bit encryption key.
- For all other algorithms, a key in the format used by the algorithm. For these algorithms, use the GenerateSecretKey function to generate the key.
|
algorithm
string,
optional
|
The algorithm to use to decrypt the string. Must be the same as the algorithm used to encrypt the string.
- CFMX_COMPAT(default): the CFML specific algorithm. This algorithm is the least secure option
- AES: the Advanced Encryption Standard specified by the National Institute of Standards and Technology (NIST) FIPS-197
- BLOWFISH: the Blowfish algorithm defined by Bruce Schneier
- DES: the Data Encryption Standard algorithm defined by NIST FIPS-46-3
- DESEDE: the "Triple DES" algorithm defined by NIST FIPS-46-3
You may also specify other algorithm names as well as the feedback mode and padding scheme where applicable (in the format algorithm/mode/padding) as documented in the Java Cryptography Architecture (JCA) Reference Guide.
|
encoding
string,
optional
|
The binary encoding used to represent the data as a string. Must be the same as the algorithm used to encrypt the string.
- Base64: the Base64 algorithm, as specified by IETF RFC 2045.
- Hex: the characters A-F and 0-9 represent the hexadecimal byte values.
- UU (default): the UNIX standard UUEncode algorithm .
|
IVorSalt
any,
optional
|
Initialization Vector for algorithms with Feedback Mode that is not ECB, or Salt for Password Based Encryption algorithms
|
iterations
number,
optional
|
number of Iterations for Password Based Encryption algorithms (ignored for all other algorithms). NIST recommends a minimum value of 1000.
|
precise
boolean,
optional
|
if set to true the input must follow the rule for that encoding a 100%, the decryptor will not try to interpret inputs that are not a 100% correct. This should be used to avoid false positives.
|
Examples
key = generateSecretKey("AES");
testEncrypt = encrypt("Luceeproject",key,"AES","base64");
writeDump(testEncrypt);
<span class="nv">key</span> <span class="o">=</span> <span class="nf">generateSecretKey</span><span class="p">(</span><span class="s2">"AES"</span><span class="p">);</span>
<span class="nv">testEncrypt</span> <span class="o">=</span> <span class="nf">encrypt</span><span class="p">(</span><span class="s2">"Luceeproject"</span><span class="p">,</span><span class="nv">key</span><span class="p">,</span><span class="s2">"AES"</span><span class="p">,</span><span class="s2">"hex"</span><span class="p">);</span>
<span class="nf">writeDump</span><span class="p">(</span><span class="nv">testEncrypt</span><span class="p">);</span>
See also