问题标签 [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.

0 投票
1 回答
330 浏览

java - 我如何知道我是否使用了正确版本的 Triple Des 算法实现?

我在互联网上搜索了 Java 的 Triple Des 算法实现。

我找到了很多解决方案并选择了一个(对我来说文档更好的那个)。我测试并工作正常。

然后,我搜索了 Java 的 AES 算法实现。并找到了一个好的。与 Triple Des 算法的实现非常相似,但并不完全相同。

所以我想,如果我使用 AES 算法实现但将密码实例参数从“AES”更改为“DESede”,会附加什么?我进行了更改,测试了代码并且工作正常。但是,返回的字符串与我之前的 Triple Des 算法实现中返回的字符串不同。

所以,就像标题说的那样,我怎么知道我是否使用了正确版本的 Triple Des 算法实现?

这是第一个实现:

这是第二个:

这是测试用例:

对不起我糟糕的英语。

谢谢你的帮助

0 投票
2 回答
541 浏览

c# - 3DES 不会为同一密文的多次迭代产生一致的解密

我在我的代码中实现了一个 3DES (TripleDES) 解密例程,并注意到当提供的密文与前一次迭代相同时,它永远不会产生相同的明文。这似乎是不确定的,我敢肯定这是我做错了。

我尝试过 CBC(带有归零的 IV)、ECB、处置和清算的多种组合。我似乎无法获得一致的输出。

(由于某种原因,下面“代码”和“输出”上的代码格式不正确,抱歉)

代码

输出

0 投票
1 回答
12950 浏览

php - 使用 TripleDes、PKCS7 和 ECB 进行 PHP 加密/解密

我的加密功能正常工作,但是我无法弄清楚如何让解密功能提供正确的输出。

这是我的加密功能:

这是我的解密功能:

现在我正在使用的密钥,test我正在尝试加密1234567。我从我正在寻找的加密中获得 base64 输出,但是当我去解密时它什么也不返回(一个空白区域)。

我对加密/解密不是很精通,所以非常感谢任何帮助!

0 投票
1 回答
2339 浏览

c# - 如何在 .NET / C# 中设置 TripleDES 密钥

我正在使用TripleDESC# 并根据MSDN 条目TripleDES可以使用两个或三个 56 位密钥并使用 DES 的三个迭代。但是,我不知道如何指定要使用多少个键,以及这些键是什么。事实上,我能找到的所有示例都显示TripleDES.CreateEncryptor()使用一个键或没有键调用。此外,TripleDES该类只有一个Key属性。

如何为 指定第二个和第三个键TripleDES

提前致谢。

0 投票
1 回答
2262 浏览

php - php 中的 3des - 无法获得好的键/字符串

我需要在 php 中解码一个 3des 字符串,到目前为止我还没有解码经验......

第一步是:获取要解码的密钥和字符串集——我已经有了。

我有关于算法的信息:

类型:CBC,填充 - PKCS5,初始化向量(iv?) - 八个零的数组

我尝试这种方式:

在开始时,您会看到示例数据,并且在此数据上代码工作正常。当我尝试使用通过 SOAP Web 服务从数据库获取的自己的数据时,问题就开始了。我看到这个错误:

警告:pack() [function.pack]:H 型:非法十六进制数字在....

在此处输入图像描述

尽管尝试在脚本中使用不同类型的编码,但我还是得到了这个。脚本文件本身在 ANCI 中。

另外:正如您在评论中看到的那样,我也对 IV 进行了一些实验,但如果不处理我猜的第一个问题,它就没有意义。

另一件事是填充== PKCS5。我是否需要使用它,我应该如何使用它?

我真的很感激这方面的帮助。

0 投票
2 回答
811 浏览

c# - 在 C# 和 Java 中实现 Triple DES 有什么区别吗?Java 给出错误的 IV 大小

在我们的应用程序中,我们使用三重 DES 来加密和解密数据。我们在 C# 中有 enc/dec 代码,它使用 24 字节密钥和 12 字节 IV,可以正常工作。现在我们想在 java 中实现相同的代码,但是当我使用 12 字节 IV 时,我在 java 中得到一个错误,说 IV 大小错误。当我四处搜索时,我知道 java 使用 8 字节 IV。现在我很困惑,三重 DES 的 C# 和 JAVA 实现有何不同。还是我错过了什么?

这类似于我们的加密代码

}

这就是我们使用它的方式:

0 投票
1 回答
1893 浏览

encryption - 没有 base 64 编码的 TripleDES:给定最终块未正确填充

我正在尝试使用 TrippleDES 算法加密和解密字符串,而不使用 Base64 编码(我的应用程序将与具有这些要求的另一个应用程序通信)。当我使用 Base64 编码/解码测试东西时,一切都运行良好,但是当我切换到纯文本样式(比如我调用的应用程序需要)时,一切都坏了。

我读过这篇文章Given final block not proper padded,这说明解码时密钥错误,但这不可能,因为这些行实际上为密钥和转换传递了相同的变量:

另外,我打印了编码字符串和数组的长度,它们的长度是 8 的倍数。

我得到的输出是:

我的完整代码(本教程稍作修改的版本http://eternusuk.blogspot.com/2008/09/java-triple-des-example.html):

提前致谢!

0 投票
2 回答
2676 浏览

javascript - 在 Titanium 移动项目中使用“CryptoJS”库来解密文本消息 [Triple DES]

我有一条加密的短信,我想使用链接上发布的“crypto-js”库对其进行解密:http ://code.google.com/p/crypto-js/

我想使用 TRIPLE DES 解密。我下载了库并将“tripledes.js”放在我项目的“lib”文件夹下。我正在调用函数以这种方式解密:

我总是收到此错误:“无法调用未定义的方法'解密'”。

我检查了“tripledes.js”代码,真诚地认为它是一个大库,所以我没有找到如何使用这个库来解密我在 Titanium 中的文本的解决方案。

先感谢您。

0 投票
2 回答
1094 浏览

java - 3DES 加密/解密在 Windows 中有效,在 Linux 中抛出 IllegalBlockSizeException

我最近尝试将 Flex/Java 软件解决方案从 Windows 迁移到 Linux(CentOS6 64 位),我遇到了这个问题。

简单地说,我在 Flex/ActionScript 中加密一个短文本(使用 com.hurlant 库),算法是带有 ECB 和 PKCS5Padding 的 TripleDES。服务器是 JBoss 5.1.0GA。

然后将此加密文本发送到 JMS 目标。

在 JMS 的接收端有一个简单的 Java 应用程序(使用 BouncyCastle)尝试解密文本。

所有这一切都像 Windows 上的魅力一样。在 Linux 上我得到这个:

我在 Java 应用程序(以 Base64 编码)接收时记录了加密文本,它在 Linux 和 Windows 上是相同的。关键显然是一样的。

我相信这可能是一个字符集编码问题,但即使使用 -Dfile.encoding=UTF8 或 -Dfile.encoding=windows-1252 选项启动 JBoss 和 Java 应用程序也不起作用。

这是用于加密的代码(ActionScript):

这是用于解密的代码(Java):

如前所述,userPin3DESBase64EncryptedLinux 和 Windows 上的内容相同(相同的 Base64 字符串),因此问题不应该出现在 Flex/JBoss 方面......

有任何想法吗?

提前感谢所有将头撞到桌子上的人,因为我已经做了很多次了......

干杯

卢卡

0 投票
2 回答
13448 浏览

java - Java 三重 DES 算法 填充模式

我需要知道适用于 Triple DES 算法的填充模式是什么,AI_PKCS_PADDING 是适用于 Triple DES 的填充模式吗?