创建 CryptoJS AES 密码加密器以在 .NET 中解密
Create CryptoJS AES Cipher Encryptor to Decrypt in .NET
我正在尝试创建可以在 server/client 之间工作的 Encryption/Decryption。我的客户端有 CryptoJS,服务器端有 ASP.Net (VB.Net)。服务器端在许多地方使用,因此无法更改,因此 CryptoJS 需要解决 .NET 正在做的事情。我无法让我的 CryptoJS 100% 模仿 .NET。
仅供参考,.NET 代码无法更改,JS 必须匹配 .NET 功能。
Code removed upon request
我在尝试解密客户端加密时在 .NET 中遇到的错误:
Padding is invalid and cannot be removed.
额外信息
如果我只是通过一个 Hex 作为密钥(删除 .toString(CryptoJS.enc.Latin1)
),我没有得到足够的字符(似乎更改为 128 位而不是 256 位)。
JS MD5_Key返回的实际数据似乎匹配.NET中的Validate_MD5...
我是在努力实现不可能的目标吗?
CryptoJS 仅支持 AES,它基本上是 Rijndael,但限于 128 位的块大小。它支持 128、192 和 256 位的密钥大小。您的 .net 代码使用块大小为 256 的 Rijndael,这是 CryptoJS 不支持的。 CryptoJS 愉快地接受了大 IV,并且只使用了前 16 个字节。
您将不得不找到另一个支持此功能的库,因为您无法更改 .net 代码。
我正在尝试创建可以在 server/client 之间工作的 Encryption/Decryption。我的客户端有 CryptoJS,服务器端有 ASP.Net (VB.Net)。服务器端在许多地方使用,因此无法更改,因此 CryptoJS 需要解决 .NET 正在做的事情。我无法让我的 CryptoJS 100% 模仿 .NET。
仅供参考,.NET 代码无法更改,JS 必须匹配 .NET 功能。
Code removed upon request
我在尝试解密客户端加密时在 .NET 中遇到的错误:
Padding is invalid and cannot be removed.
额外信息
如果我只是通过一个 Hex 作为密钥(删除 .toString(CryptoJS.enc.Latin1)
),我没有得到足够的字符(似乎更改为 128 位而不是 256 位)。
JS MD5_Key返回的实际数据似乎匹配.NET中的Validate_MD5...
我是在努力实现不可能的目标吗?
CryptoJS 仅支持 AES,它基本上是 Rijndael,但限于 128 位的块大小。它支持 128、192 和 256 位的密钥大小。您的 .net 代码使用块大小为 256 的 Rijndael,这是 CryptoJS 不支持的。 CryptoJS 愉快地接受了大 IV,并且只使用了前 16 个字节。
您将不得不找到另一个支持此功能的库,因为您无法更改 .net 代码。