问题标签 [rfc2898]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
204 浏览

javascript - 从 C# 在 JavaScript 中生成 Rfc2898DeriveBytes 键

我有一个应用程序使用Rfc2898DeriveBytes. 我一直在尝试使用 CryptoJS PBKDF2 在 JavaScript 中编写解密方法来制定跨平台解决方案。但是,我无法弄清楚以下两个问题:

  • 我找不到匹配的钥匙
  • 我无法弄清楚 JavaScript 中的 IV 应该是什么。

密钥生成

在 C# 中生成密钥(不幸的是,我对此没有太多控制权,因为它支持很多遗留系统)

我用于密钥生成的 JS 代码是:

根据我的研究,这应该是理想的工作,但在两个代码中生成的密钥永远不会相同。我已经烧了很多午夜油,因为我做错了什么而挠头,但我不明白为什么。

解密

C#中的解密方法如下:

我在 JS 中解密的解决方案是:

我假设如果我能得到正确的密钥和 IV,我可以解决这个问题。我已经四处寻找兼容的解决方案,但我对自己做错了什么感到茫然。

任何帮助将不胜感激。