问题标签 [des]

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 回答
2817 浏览

c# - 将 DES 加密数据从 Java 解密到 .Net

我在解密使用 DES 算法在 Java 中加密的加密字符串时遇到问题。我认为我的主要问题是,我在 java 代码中看不到任何盐或 IV 规范。

我有以下信息:这个HexSequence是我必须解密的加密数据:9465E19A6B9060D75C3F7256ED1F4D21EDC18BB185304B92061308A32725BE760F1847E3B19C1D3548F61165EA2E785E48F61165EA2E78

算法:DES,填充:DES/ECB/NoPadding,密钥:TESTKEY123

解密后我应该得到: 550000000018h000000273Al2011112214340600000000000000000000000000

用于加密数据的 java 代码如下所示:

我尝试使用以下 .net-code 来解密数据:

奇怪的是那行:

数据长 55 个字节,但我必须把它放在 56 个字节中。它将一个 0 字节附加到数组的 and 中,但如果我不这样做,cryptostream 会抛出一个错误,即要解密的数据太短。

如果我以这种方式尝试,我只会得到垃圾作为输出。我使用的是空的盐和 IV,因为我看不到 Java 代码正在使用哪个盐和 IV。有没有我不知道的默认值?

编辑:从 hexCode 中获取字节的 Java 代码:

看起来 Java 使用有符号字节,而 .Net 对其所有功能都使用无符号字节。这可能是问题吗?

0 投票
3 回答
96241 浏览

c# - 使用 C# 和 SymmetricAlgorithm 进行真正简单的加密

我正在寻找一种非常简单的加密/解密方法。我将始终使用相同的静态密钥。我知道这种方法的风险。目前我正在使用以下代码,但在加密和解密相同的字符串后它不会生成相同的结果(字符串中间有一些垃圾)。

我可以改变任何需要的东西,没有限制(但我只想有一个加密方法和另一个解密方法,而不在它们之间共享变量)。

谢谢。

0 投票
3 回答
4815 浏览

java - Java DESede 加密,OpenSSL 等效

我在 Java 中使用 DESede 加密,我想在 C++ 中使用 OpenSSL 的 API 进行相同的加密。

Java代码:

输出:[94, -45, 64, -105, 99, -55, 99, -42, 95, 122, 72, 117, -119, 95, -43, 40]

C++ 代码:

输出:[30 55 9 -58 -18 -65 -66 123 -32 72 30 110 120 69 101 -81]

怎么了?有人能帮我吗?谢谢!。

0 投票
5 回答
17007 浏览

python - 使用弱密钥暴力破解 DES

我正在学习密码学课程并且被困在作业中。说明如下:

明文 plain6.txt 已使用 DES 加密为 encrypt6.dat,使用 64 位密钥作为 8 个字符的字符串(64 位,其中每 8 位被忽略),所有字符都是字母(小写或大写)大小写)和数字(0 到 9)。

要完成任务,请在 2 月 12 日 23.59 之前将加密密钥发送给我。

注意:我希望得到一个 8 字节(64 位)的密钥。每个字节都应该与我的密钥中的相应字节一致,除了在 DES 中未使用的最低有效位,因此可能是任意的。

这是我在 Python 中第一次尝试的代码:

我的速度为 60.000 次/秒。62 个字符的 8 个字节的密码提供了 13 万亿种可能性,这意味着以这种速度,我需要 130 年才能解决。我知道这不是一个有效的实现,而且我可以用更快的语言(如 C 或它的风格)获得更快的速度,但我从未在这些语言中编程过。即使我得到了 10 的加速,我们仍然距离每秒 10,000,000,000 个小时范围内有一个巨大的飞跃。

我错过了什么?这应该是一个弱键:)。嗯,弱于完整的 256 个字符集。

编辑

由于对分配的一些模糊性,这里是完整的描述和一些校准测试文件:http: //users.abo.fi/ipetre/crypto/assignment6.html

编辑 2

这是一个粗略的 C 实现,在 i7 2600K 上每个内核的密码速度约为 2.000.000/s。您必须指定密码的第一个字符,并且可以在不同的内核/计算机上手动运行多个实例。我设法在四台计算机上使用它在几个小时内解决了这个问题。

0 投票
1 回答
4588 浏览

c - DES - 位和逆的排列

我目前正在尝试实现加密方案 DES,但我很早就遇到了问题。这是我第一次在程序中执行按位操作,而且我对 C 也不是很精通。我应用排列及其逆,结果与输入不同。

我想要做的是在 64 位块上应用初始排列和逆排列。我有我想要在数组输入中加密的 64 位块。根据排列表 IP,我取第一个字节中的第一位并将其作为排列中的第 58 位。第 2 位被发送到第 50 位,依此类推。在排列之后,结果被分成两半并交换边。这将使它能够使用相同的算法但使用 IPinverse 表放回原处。

}

0 投票
2 回答
1977 浏览

c# - 通过加密数据生成 MAC

我希望这个问题不会因为没有建设性而被关闭。我一直在努力解决这个问题,但仍然一无所获。所以,这是我最后的希望:
问题基本上是关于生成 ISO 8583-Rev 93 消息的 MAC 字段。
我有一些有效消息的转储,我正在尝试生成正确的 MAC。

  • 加密算法是DES, Mode=CBC,IV = new byte[] {0, 0, 0, 0, 0, 0, 0, 0}
  • 加密密钥为:new byte[] { 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11 }
  • 要加密的数据是(消息)(208 字节长):
  • 我应该加密数据并(可能在将结果转换为十六进制之后)获得BF327C0CED48F26B进入消息第 128 个字段的有效值。

这是我尝试过的(以及更多的实现):

简而言之,如何BF327C0CED48F26B通过加密dataToEncrypt变量来实现?

我真的很感激任何帮助。

更新:以下是消息详细信息,以防有任何帮助:

更新 2: 好吧,那些白痴忘记在他们的文件中提到应该填写字段 128 0然后将其发送加密。通过尝试和错误发现了这一点!

0 投票
2 回答
3561 浏览

c# - CryptoStream:要解密的数据长度无效。相同的代码不会对相同的数据产生错误

好吧,这对我来说很奇怪。我有这个代码,它有效:

这会将解密的数据写入文件。

然后我有这段代码做同样的事情,除了它写入(并返回) a MemoryStream

在该行上,currBytes = cs.Read(buffer, 0, buffer.Length)我收到错误“要解密的数据长度无效”,但仅在第二组上,而不是在第一组上。“ICryptoTransform解密器”是从一种通用方法创建的,我知道它使用相同的密钥。

谁能告诉我为什么我不会在第一次出现这个错误,但会在第二次出现,以及(更重要的是)如何修复它。

而且,是的,我知道 DES 并不是最好的加密方法。这是概念验证性质的东西,在生产环境中永远不会出现。

0 投票
1 回答
4318 浏览

vb.net - VB.Net DES加密功能,转三重DES

这是我目前的 DES 加密,但由于我对 VB.Net 还很陌生,我可以弄清楚如何使它使用三重 DES 而不是 DES

0 投票
1 回答
2393 浏览

c# - C# 中的 PBEwithMD5andDES

我应该如何使用此代码指定文本输入和输出?我需要打开一个文件并读取其内容(我知道该怎么做),然后使用此代码对其进行解密。

cipherText 是加密文本, clearBytes 是未加密字节,但我需要使用带有 C# 表单的文本框进行输入和输出。

这就是它需要工作的方式: textBox1.Text (input) -> bytes -> ^above^ string -> bytes -> textBox2.Text (output) 只要我的输入是加密文本并且我的输出被解密,任何东西都可以工作文本。

0 投票
1 回答
316 浏览

java - 为什么我的一种解密方法比另一种运行得更快?

我创建了加密解密方法来加密图像和视频。我正在对视频进行部分加密,确切地说是 1 MB。更复杂的解密方法需要很长时间才能解密 android 设备上的内容。然而 img_decrypt 根本不需要很长时间。不知道他们为什么这样做。

这是一个。这个可以解密完全加密的视频或图像。以毫秒为单位解密完整图像,但无法解密部分加密的视频。

这是另一个。这需要永远运行。将解密完全加密的图像或部分加密的视频。

因为解密()方法需要很长时间才能解密一个 100KB 的文件,所以设备要求我中止或等待。

如果我使用 img_decrypt() 它根本不会工作。这对我来说毫无意义,他们在做同样的事情。

我试图使用decrypt() 来解密视频的第一个MB。

在计算机上一切正常。

任何想法都可能会有所帮助。

这两种方法都适用于解密完全加密的文件,但 decrypt() 花费的时间太长。

还有一件事。decrypt() 对写入的数据进行解密。img_decrypt() 对读取的数据进行解密。不知道这是否会影响任何事情。

谢谢