问题标签 [tripledes]
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.
cryptography - 使用 TripleDes 或 RSA 在两方之间共享数据
我从供应商那里收到 TripleDes 或 RSA 格式的加密数据。
当我去解密这些数据时,我需要我的供应商提供什么信息才能做到这一点?
私钥和公钥都可以吗?
那么,仅用于加密的公钥有什么用?
cryptography - 使用 Triple des,您可以仅使用公钥解密吗?
我知道使用 RSA 有几种方法可以加密和解密数据,这意味着您可以使用公钥或私钥(或两者)进行加密,也可以仅使用私钥或公钥进行解密,或两者兼而有之。
使用 Triple Des,您需要密钥和 iv 来解密吗?或者你能用钥匙以某种方式做到这一点吗?(公钥?)
c# - CFB 模式下的 TripleDES,C# 和 Crypto++ 不同
这是我的问题:我在 C++ 中有一个旧代码(使用 crypto++ v5.6.1),我在 C# 中开发了一个新代码(使用 System.Security.Cryptography 的.NET 3.5)。我无法更改C++ 代码,但我需要能够解密之前加密的数据,并且之前的应用程序必须能够解密我将使用新的 C# 代码加密的数据。
在这两种情况下使用的算法都是带有CFB密码模式的TripleDES,但最终加密的数据并不相同,字节数和第一个字节一样,但除此之外所有其他字节都不同。
填充是在 C++ 代码中手动完成的(添加零)。所以我将 PaddingValue 设置为 PaddingMode.Zeros。(我还尝试在 C# 代码中手动添加零,它没有改变任何东西)。
我尝试使用不同的 System.Text.Encoding 但结果是相同的(实际上测试的字符是“纯”ASCII(即:0 和 126 之间))。
MandatoryBlockSize() 在 C++ 代码中的值是 8,所以我也将 FeedbackSize 设置为 8。但是如果我理解它,它实际上是我的IV的大小,不是吗?
密钥大小为 24 字节(3 个不同的密钥),IV 为 8 字节长。它们在 2 个代码中都是相同的。
如果我在两种情况下都使用 CBC 模式,则结果是相同的(但是,正如我所说,我无法更改旧代码......),OFB 和 CTS 模式会引发异常(一种不可用,另一种不兼容)在我的 .NET 应用程序上,所以我无法比较结果。
我尝试使用带有 .Net 3.5 和 4.0 版本的 Mono,或者使用带有 .Net 3.5 或 4.0 的视觉,4 个加密结果相同,但与原始结果不同。
现在我真的不知道要测试什么......我宁愿不将 Crypto++ 包装在 C++/CLI 项目中以使用它而不是 System.Security.Cryptography。
有人有什么建议或者可以告诉我我做错了什么吗?
这是 C++ 代码:
这是 C# 代码:
编辑:我尝试直接使用加密器,而不是使用流,我遇到了同样的问题。
c# - C#字节数组到字符串
我已经阅读了几篇关于这样做的文章,我认为这里有一个变量我没有考虑。
我正在查看别人的代码,他们已经实现了三重加密。他们没有密钥,并且 iv 以字符串的形式存储在某处。仅作为字节数组。
我需要在 C# 之外进行同样的加密/解密调用,所以我试图找出使用的密钥。
我尝试过的事情:
也许其中一个的结果是正确的,但我需要进行另一次转换来对其进行编码?
万一这很重要,我只是尝试通过 ruby 或 node.js 将这些密钥与 openssl 一起使用。
对于它的价值,我还尝试在 ruby 中创建一个字节数组并对它们进行打包,但似乎仍然是错误的结果。
c# - 为什么 TripleDES.Create().Key 不是该算法的有效大小?
在我需要使用不同密钥解密文本的情况下,我还需要在后面的代码中生成有效密钥。
我正在使用这条线来生成一个密钥。
但不能在此方法中使用该密钥。它说“指定的密钥不是该算法的有效大小”
我该如何解决这种情况?
perl - 尝试使用 TripleDES 加密 GWT 客户端和 perl 服务器之间的事务时如何处理密钥?
我有一个 GWT 客户端通过 HTTP 上的 JSON 与 perl 服务器通信。它工作得很好,但有一些隐私问题,我需要加密交易。在做了一些研究之后,似乎最简单/最好的支持选项是使用 TripleDES,客户端使用 gwt-crypto,服务器使用 Crypt:CBC。问题是我不知道如何在两端使用相同的密钥,因为您设置它们的方式似乎完全不同。在 java/gwt 方面,我正在执行以下操作:
在 perl 方面,我正在做:
我尝试了各种密钥方案,但似乎如果我让 gwt 高兴,那么 perl 就不会了,反之亦然。例如,据我所知,以下 perl 应该可以工作,但是当我尝试它时出现“无效密钥”错误:
所以,我想我最终可以弄清楚编码问题,我在跳过箍告诉每一方使用什么键时遇到的麻烦。任何帮助是极大的赞赏。
testing - Triple DES 的 ECB、CBC、CFB 和 OFB 模式的测试向量
在哪里可以获得 Triple DES 的 CBC、CFB 和 OFB 模式的测试向量?
请帮帮我。
java - 加密异常:您尚未安装 Java Cryptography Extension (JCE)
错误:加密异常:您尚未在此 Java 虚拟机中安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files
我已经读过要解决这个问题,必须下载 local_policy、US_export_policy jar 并将其放入我所做的 jre\lib\security 文件夹中。我什至覆盖了已经存在的那些。但是错误仍然存在。我重新启动 VMware,重新部署应用程序,重新发布,清理但没有帮助。它没有依赖项,因为我的 java se 是 1.7 版本。
除了我已经尝试过的建议之外,还有什么建议可以帮助我解决这个问题吗?
谢谢。
c# - 如何在 C# 中包装对称密钥和 IV
是否有用于执行 Triple DES Key Wrap 的现有 .NET API?
文档在这里。
我生成了 192 位对称密钥 + 64 位初始化向量 (IV),总共 256 位。
目前,我的代码只加密对称密钥,如下所示:
我使用http://www.w3.org/2001/04/xmlenc#tripledes-cbc作为加密算法。
用于签署 SAML 响应的算法 - http://www.w3.org/2000/09/xmldsig#rsa-sha1
加密密钥传输 - http://www.w3.org/2001/04/xmlenc#rsa-1_5
服务提供商无法解密我的摘要值,直到他们使用对称密钥包装 IV。
预先感谢您的任何帮助!
-嘉莉