有没有像PHP一样进行Rijndael 256位加密的JavaScript库


Is there a JavaScript library that does Rijndael 256bit encryption like PHP?

我一直在 PHP 中广泛使用 Rijndael 256 位加密作为我的 API,并希望将其用于用 JavaScript 编写的 API 包装器,但我无法找到与 PHP 中相同的结果的解决方案。

PHP的意思如下:

base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$password,$secretInformation,MCRYPT_MODE_CBC,$iv));

base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$password,$secretInformation,MCRYPT_MODE_EBC));

.. 以及解密变体。

我知道许多 256 位 AES 库没有得到与 PHP 使用 Rijndael 256 位加密相同的结果,因此我想知道是否有一个库能够执行 PHP 在上面的例子中所做的?

谢谢!

MCRYPT_RIJNDAEL_256不是具有256位密钥的AES,它基本上是具有256位块大小的"AES"(AES通常具有128位块大小)。Rinjdael有很多选项,并通过将这些选项减少到128或256位密钥大小来标准化为AES。因此,库必须支持标准 (AES) 而不是原型。

如果你想要 AES 256 或 128

,这是几乎所有库实际支持的,请使用带有 128 位或 256 位密钥的MCRYPT_RIJNDAEL_128。块大小的差异并没有太大的差异 安全方面 .

此外,使用原始密码作为密钥是一个非常糟糕的主意。通过使用基于密码的密钥派生函数(如 PBKDF2)从密码中获取密钥。