问题标签 [3des]

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 投票
4 回答
51284 浏览

c# - C#.Net 中的 3DES 密钥大小问题

下面的代码在 c#.NET 中运行良好

我关于上述的问题是......

  1. 如何指定 KeySize?如果我使用des.KeySize= 128or192或者256它给出

指定的密钥不是此算法的有效大小

  1. 如果我通过添加更多(例如:40 个字符)来更改键中的字符长度。它给出了错误

指定的密钥不是此算法的有效大小

我想知道为什么会这样?

0 投票
2 回答
1962 浏览

java - 使用 Java 解码 cryptlib 编码的文本(不使用 cryptlib)

你好。

首先:我是stackOverflow和我正在谈论的主题的新手......
我试图避免在我的Java应用程序中使用cryptlib库进行TripleDES加密(现在我正在使用AES - 以确保向下兼容性我还希望能够解码使用 cryptlib 库创建但不使用 JNI 的字符串)。
但是我现在尝试的所有方法都不适合我。

配置:
算法: TripleDES
模式: CBC
格式: CRYPT_FORMAT_CRYPTLIB
密钥的大小为 16 字节(不方便,但 BouncyCastle 会支持)。
并且加密数据的大小不是8 的倍数(例如 81 字节)。

在我的库包装器中(也在 C 中),上下文是这样创建的:

信封是这样创建的:

我认为问题在于格式(因为它是“cryptlib 本机”格式) - 我在网上找不到任何关于它的描述......

目前我最好的尝试是这个:

我也尝试了不同的填充,但我总是以这两个例外之一结束:

  • javax.crypto.IllegalBlockSizeException:数据未对齐块大小
  • javax.crypto.IllegalBlockSizeException:最后一个块在解密中不完整

我有点绝望,所以如果有人能帮助我,我会很高兴...

编辑: 这是加密代码(CryptData.cpp):

编辑 2: 相比之下,它与此邮件列表中描述的实现相同。
但我想用Java解码它......

编辑 3: 我认为问题在于,加密数据被封装在 cryptlib 中(如代码所示)。

编辑 4: 我知道问题在于包围。cryptlib 使用创建的 crypt 上下文的会话密钥以 CRYPT_FORMAT_CRYPTLIB 格式封装解密数据。现在的问题是如何在执行真正的解密之前解码信封。
有什么建议我可以如何执行解码?

0 投票
1 回答
1226 浏览

c# - TripleDESCryptoServiceProvider 使用十六进制密钥

我正在使用 TripleDESCryptoServiceProvider 加密 C# 中的一系列字节。传递给我的密钥是这样的FFC7B905AD6ACB57D662115FD65FA338,我相信它是一个十六进制。如何将此值放入TripleDESCryptoServiceProvider.Key接受字节数组的属性中,或者如何将此值复制到字节数组中,以便我可以传递给键属性。

提前致谢,

约翰

0 投票
3 回答
9542 浏览

c# - 如何在 C# 中使用三重 DES 执行 ISO 9797-1 MAC?

我有一个项目,它为 24 字节数据块规定了以下加密规则。

1) 加密应该使用 9797-1 中定义的完整三重 DES MAC 算法作为 MAC 算法 3 进行,输出转换 3 没有截断,并且 CBC 模式下的 DES 作为 ICV 设置为零的分组密码。最后 8 个字节的加密数据构成了我们需要的值。

该程序说所做的加密是错误的。我还需要做其他事情来匹配上述规范吗?

数据是一个 24 字节的值,加密的输出应该是 8 个字节,我猜(根据规范)。我得到整个 24 个字节作为输出:(

我编写了以下代码来实现上述规范:

我也试过这个:

0 投票
1 回答
179 浏览

java - 需要支持 1 位反馈密码模式的 3-DES 密码库

我在 1 位流模式下找不到支持 CFB、OFB 或 CBC 模式的 java 库。

到目前为止,我尝试过的库(BouncyCastle 和 IAIK)仅支持 8-64 范围。

0 投票
1 回答
4182 浏览

openssl - 在 OpenSSL 中使用零填充?

System.Security.Cryptography.TripleDES 允许我像这样使用零填充:

现在改为使用 OpenSSL

问题是,当我通过两种方法加密字符串时,我收到两个差异结果:

我想这是因为填充为零。但我不知道如何在 openssl 中使用填充零。

任何帮助表示赞赏。

0 投票
1 回答
1728 浏览

php - php mcrypt CBC模式加解密问题

当我尝试使用 php 的 mcrypt 扩展加密/解密某些文本时,我遇到了 CBC 模式的问题。我已经创建了一个类来执行此操作,它可以在除 CBC 之外的其他模式下正常工作。

问题如下:

我使用明文Even in cryptography, silence is golden。我做加密部分,到目前为止没问题。但是每次我尝试解密时,我都会得到如下信息:9��'t"�cryptography, silence is golden. 如您所见,文本的前 8 个字符是错误的。我不知道是什么导致了这种行为。

我的班级中处理这些操作的部分是:

以上示例使用的算法是 3DES。正如我之前所说,使用其他模式,例如 ECB,一切正常。

有什么建议么 ?

0 投票
1 回答
1727 浏览

cryptography - Capicom VS .Net System.Security.Cryptography中的不同3DES标准?

我正在研究用于加密和解密字符串的标准 3DES 128 位。它在两种不同的环境中实现;经典的 ASP (VB6) 和 .Net。

我认为 3DES 是标准的,但是,我无法使其在这两者(capicom 和 .Net)之间兼容。谷歌搜索后,我意识到 capicom 有一些自己定制的魔法。

据我了解,3DES 需要两个指定的 128 位(8 字节)密钥(密码)和8 个字节的 "IV"。所以,我找不到任何可以在 capicom 中指定“IV”的 8 个字节的地方,因此,我怀疑这会导致差异。


.Net 系统.安全.密码学


Capicom 在 VB6 环境中:

希望您能帮忙提供一些想法。

0 投票
3 回答
2972 浏览

iphone - Objective-C 中的 3DES 加密

我正在为 iMac 和 iPhone 构建应用程序。该应用程序的目标是加密纯文本消息、电子邮件、密码、日期等。我做了一些研究,发现 3DES 可以很好地工作并且非常安全。有谁知道如何在 iPhone 或 Mac 的 Objective-C 中实现 3DES?任何帮助,将不胜感激!谢谢!

0 投票
1 回答
676 浏览

sql - 设置文件中的 ToadStudio 密码,安全问题

我需要共享 ToadStudio SQLeditor 的连接设置文件。

我确实对存储在设置文件中的密码有些担心。

该文件当前如下所示:

它旨在通过 SSH 隧道连接到数据库。

因此,问题在于密码存储在此文件中的方式。查看文件中的第一行,我假设密码是用三重 DES 加密的。

在上面的示例中,密码等于用户名 (dbuser,sshuser)

由于我可以共享此文件,因此任何其他 TOADStudio 实例都可以将其解密为原始纯文本,因此我只能猜测 toadStudio 使用硬编码种子来加密内容。

我没有在我的服务器上运行国家机密,但我想要一点保证,有人根据这些设置文件获取密码明文并非易事。

任何见解将不胜感激。