algorithm{string}key{string | Buffer | TypedArray | DataView | KeyObject}iv{string | Buffer | TypedArray | DataView | null}options{Object} [stream.transform的选项][stream.transformoptions]。- 返回: {Decipher}
使用给定的 algorithm、key 和初始化向量(iv)创建并返回一个 Decipher 对象。
options 参数控制流的行为,它是可选的,除非使用 CCM 或 OCB 模式的密码(例如 'aes-128-ccm')。
在这种情况下,必须使用 authTagLength 选项,并以字节为单位指定身份验证标签的长度,参见 [CCM 模式][CCM mode]。
在 GCM 模式中,不需要 authTagLength 选项,但可用于将接受的身份验证标签限制为具有指定的长度。
algorithm 取决于 OpenSSL,例如 'aes192' 等。
在 OpenSSL 的最新版本中,openssl list -cipher-algorithms(在较旧版本的 OpenSSL 中是 openssl list-cipher-algorithms)将会显示可用的密码算法。
key 是 algorithm 使用的原始密钥,iv 是[初始化向量][initialization vector]。
两个参数都必须是 'utf8' 编码的字符串、[Buffer][Buffer]、TypedArray 或 DataView。
key 可以是 secret 类型的 [KeyObject]。
如果密码不需要初始化向量,则 iv 可以为 null。
初始化向量应该是不可预测的且唯一的,理想情况下,它们在密码上是随机的。 它们不必是私密的:IV 通常只是添加到未加密的密文消息中。 它们必须是不可预测的且唯一的,但不一定是私密的,这听起来似乎是矛盾的。 记住,攻击者必须无法提前预测给定的 IV 将会是什么。
