问题标签 [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.
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 对其所有功能都使用无符号字节。这可能是问题吗?
c# - 使用 C# 和 SymmetricAlgorithm 进行真正简单的加密
我正在寻找一种非常简单的加密/解密方法。我将始终使用相同的静态密钥。我知道这种方法的风险。目前我正在使用以下代码,但在加密和解密相同的字符串后它不会生成相同的结果(字符串中间有一些垃圾)。
我可以改变任何需要的东西,没有限制(但我只想有一个加密方法和另一个解密方法,而不在它们之间共享变量)。
谢谢。
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]
怎么了?有人能帮我吗?谢谢!。
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。您必须指定密码的第一个字符,并且可以在不同的内核/计算机上手动运行多个实例。我设法在四台计算机上使用它在几个小时内解决了这个问题。
c - DES - 位和逆的排列
我目前正在尝试实现加密方案 DES,但我很早就遇到了问题。这是我第一次在程序中执行按位操作,而且我对 C 也不是很精通。我应用排列及其逆,结果与输入不同。
我想要做的是在 64 位块上应用初始排列和逆排列。我有我想要在数组输入中加密的 64 位块。根据排列表 IP,我取第一个字节中的第一位并将其作为排列中的第 58 位。第 2 位被发送到第 50 位,依此类推。在排列之后,结果被分成两半并交换边。这将使它能够使用相同的算法但使用 IPinverse 表放回原处。
}
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
,然后将其发送加密。通过尝试和错误发现了这一点!
c# - CryptoStream:要解密的数据长度无效。相同的代码不会对相同的数据产生错误
好吧,这对我来说很奇怪。我有这个代码,它有效:
这会将解密的数据写入文件。
然后我有这段代码做同样的事情,除了它写入(并返回) a MemoryStream
:
在该行上,currBytes = cs.Read(buffer, 0, buffer.Length)
我收到错误“要解密的数据长度无效”,但仅在第二组上,而不是在第一组上。“ICryptoTransform
解密器”是从一种通用方法创建的,我知道它使用相同的密钥。
谁能告诉我为什么我不会在第一次出现这个错误,但会在第二次出现,以及(更重要的是)如何修复它。
而且,是的,我知道 DES 并不是最好的加密方法。这是概念验证性质的东西,在生产环境中永远不会出现。
vb.net - VB.Net DES加密功能,转三重DES
这是我目前的 DES 加密,但由于我对 VB.Net 还很陌生,我可以弄清楚如何使它使用三重 DES 而不是 DES
c# - C# 中的 PBEwithMD5andDES
我应该如何使用此代码指定文本输入和输出?我需要打开一个文件并读取其内容(我知道该怎么做),然后使用此代码对其进行解密。
cipherText 是加密文本, clearBytes 是未加密字节,但我需要使用带有 C# 表单的文本框进行输入和输出。
这就是它需要工作的方式: textBox1.Text (input) -> bytes -> ^above^ string -> bytes -> textBox2.Text (output) 只要我的输入是加密文本并且我的输出被解密,任何东西都可以工作文本。
java - 为什么我的一种解密方法比另一种运行得更快?
我创建了加密解密方法来加密图像和视频。我正在对视频进行部分加密,确切地说是 1 MB。更复杂的解密方法需要很长时间才能解密 android 设备上的内容。然而 img_decrypt 根本不需要很长时间。不知道他们为什么这样做。
这是一个。这个可以解密完全加密的视频或图像。以毫秒为单位解密完整图像,但无法解密部分加密的视频。
这是另一个。这需要永远运行。将解密完全加密的图像或部分加密的视频。
因为解密()方法需要很长时间才能解密一个 100KB 的文件,所以设备要求我中止或等待。
如果我使用 img_decrypt() 它根本不会工作。这对我来说毫无意义,他们在做同样的事情。
我试图使用decrypt() 来解密视频的第一个MB。
在计算机上一切正常。
任何想法都可能会有所帮助。
这两种方法都适用于解密完全加密的文件,但 decrypt() 花费的时间太长。
还有一件事。decrypt() 对写入的数据进行解密。img_decrypt() 对读取的数据进行解密。不知道这是否会影响任何事情。
谢谢