stream.transform
options
since v10.0.0 use createDecipheriv()
Optional
options: "crypto".CipherGCMOptionssince v10.0.0 use createDecipheriv()
Optional
options: "stream".TransformOptionsCreates and returns a Decipher
object that uses the given algorithm
andpassword
(key).
The options
argument controls stream behavior and is optional except when a
cipher in CCM or OCB mode (e.g. 'aes-128-ccm'
) is used. In that case, theauthTagLength
option is required and specifies the length of the
authentication tag in bytes, see CCM mode
.
For chacha20-poly1305
, the authTagLength
option defaults to 16 bytes.
The implementation of crypto.createDecipher()
derives keys using the OpenSSL
function EVP_BytesToKey
with the digest algorithm set to MD5, one
iteration, and no salt. The lack of salt allows dictionary attacks as the same
password always creates the same key. The low iteration count and
non-cryptographically secure hash algorithm allow passwords to be tested very
rapidly.
In line with OpenSSL's recommendation to use a more modern algorithm instead of EVP_BytesToKey
it is recommended that
developers derive a key and IV on
their own using scrypt and to use createDecipheriv to create the Decipher
object.
Since v10.0.0 - Use createDecipheriv instead.
stream.transform
options
since v10.0.0 use createDecipheriv()
Optional
options: "crypto".CipherGCMOptionssince v10.0.0 use createDecipheriv()
Optional
options: "stream".TransformOptionsGenerated using TypeDoc
Creates and returns a
Decipher
object that uses the givenalgorithm
andpassword
(key).The
options
argument controls stream behavior and is optional except when a cipher in CCM or OCB mode (e.g.'aes-128-ccm'
) is used. In that case, theauthTagLength
option is required and specifies the length of the authentication tag in bytes, seeCCM mode
. Forchacha20-poly1305
, theauthTagLength
option defaults to 16 bytes.The implementation of
crypto.createDecipher()
derives keys using the OpenSSL functionEVP_BytesToKey
with the digest algorithm set to MD5, one iteration, and no salt. The lack of salt allows dictionary attacks as the same password always creates the same key. The low iteration count and non-cryptographically secure hash algorithm allow passwords to be tested very rapidly.In line with OpenSSL's recommendation to use a more modern algorithm instead of
EVP_BytesToKey
it is recommended that developers derive a key and IV on their own using scrypt and to use createDecipheriv to create theDecipher
object.Deprecated
Since v10.0.0 - Use createDecipheriv instead.