问题标签 [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 投票
1 回答
513 浏览

java - 我正在用 Java 实现长数字的 3Des 加密算法

我正在为一个项目实施 3Des 加密算法。

我以这段代码为例:

http://www.java2s.com/Code/Java/Security/TripleDES.htm

它工作正常,但我需要发送和接收字符串,但我这样做是为了将信用卡号保存在数据库中,所以我需要使用长数字,而不是字符串。

这样做有可能吗?

我必须使用特殊的 Key 还是必须对返回值进行一些转换?我正在寻找最好、最正确的解决方案。

我知道,也许我的问题有点傻,但我迷路了。

感谢您的回答,并为我糟糕的英语感到抱歉

0 投票
1 回答
2904 浏览

encryption - 从 MagTek iDynamo 加密读卡器中解密数据

有没有人有用于从 MagTek iDynamo 加密读卡器解密数据的参考代码(即使是伪代码)?ANSI X9.24 标准在伪代码和可读性方面……缺乏……。我有主密钥、KSN 和密文,需要派生会话密钥并获取明文。我已经实现了一种与此处找到的算法类似的算法,并基于 KSN 的计数器部分添加了一个循环,但它仍然不会产生实际的卡片轨迹数据。

0 投票
2 回答
541 浏览

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

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

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

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

代码

输出

0 投票
1 回答
4523 浏览

c# - C# 和 PHP 上的三重 DES 加密产生不同的结果

我正在为登录编写一个简单的加密系统,但我有一个小问题。C#加密函数:

EncryptString("test", "123456")返回"Yjaqhc7RFds="

php中的相同代码:

回报"dybhiZYdKG8pNCgCFkbV6g=="?我究竟做错了什么?

0 投票
2 回答
1382 浏览

c# - Des Cryptography 的两种方法返回两个不同的结果?

我想计算MAC(消息验证码) CBC 芯片(Ansi x9.9),我找到了一个基于循环计算 MAC 的示例,在每一轮中,加密的结果必须与下一轮纯文本块和结果应该被加密以用于下一步,这个循环重复4次,直到最后一个加密值必须作为MAC返回。

加密密钥 = 0123456789abcdef

文本是“7654321 Now is the time for”的ASCII码。

文本 = 37363534333231204e6f77206873207468652074696d6520666f7220

时间---纯文本---------------DES输入块--------DES输出块

1 ---- 3736353433323120 -------- 3736353433323120 -------- 21fb193693a16c28

2 ---- 4e6f772068732074 -------- 6f946e16fad24c5c -------- 6c463f0cb7167a6f

3 ---- 68652074696d6520 -------- 04231f78de7b1f4f -------- 956ee891e889d91e

4 ---- 666f722000000000 -------- f3019ab1e889d91e -------- f1d30f6849312ca4

我试图实现这个示例。在第一步,我得到了与样本相同的结果,但对于下一步,我的 Des 加密函数返回不同的结果作为样本的第二步。我使用硬件设备加密每个 Des 输入块,它返回与样本返回相同的 DES 输出块。要么我在这里找到了另一个 DES 实现示例,它也重新输入了正确的加密。但是我在 msdn 上使用 microsft 示例的应用程序返回的步骤 2,3 和 4 的结果不正确,但步骤 1 除外。这是我的代码:

在这里我使用了该功能

0 投票
1 回答
5225 浏览

c# - 在 C# 中复制 T-SQL DecryptByPassPhrase

我想创建一个 C# 类来解密使用 T-SQL 的 EncryptByPassPhrase 加密的字节数组。(是的,我知道我可以在 SQL Server 中解密,但我需要的是能够在数据库层和中间层等价地加密/解密。)

我了解 SQL Server 的 EncryptByPassPhrase 和 DecryptByPassPhrase 使用 TripleDES 对称密钥算法。但是,我不清楚 IV 应该用什么来模拟 SQL Server 的密码学。我可以使用TripleDESCryptoServiceProvider类加密/解密,但我找不到密钥和 IV 的正确实现来复制 SQL Server 正在执行的操作。

有没有人做过类似的事情?谢谢!

0 投票
1 回答
670 浏览

objective-c - 想要将 3DES 加密的 NSData 转换为 NSString

在我的项目中,我正在使用 3DES 加密算法加密一些数据(字符串)。我传递给加密函数的字符串返回给我一个 NSData 对象。

现在我想将 NSData 转换为 NSString,以便我可以将该字符串发送到服务器。

所以我用这段代码将 NSData 转换为 NSString

NSString *stringCreated = [[NSString alloc] initWithData:encryptedData encoding:NSASCIIStringEncoding];

但是当我打印这个字符串时,它在控制台上打印的字符很少。我认为很少有字符会生成“\0”序列,因为它只会将字符串打印到该字符。

我试图用它对数据进行编码,NSUTF8StringEncoding但它返回了我(null)。

我想将完整的字符串发送到服务器,现在该怎么办?

0 投票
1 回答
478 浏览

iphone - 在 ios 3des 加密中包含大量空终止。当我将 NSData 转换为 NSString 时,它会以第一个空终止结束?

我已将此功能用于 3des 加密。

虽然它正在工作。但是当我将此 NSData 转换为 NSString 时,因为 NSString 包含很多空终止,NSString 最终在第一个空终止时结束,变量不能包含整个数据。但我必须在服务器上发送加密字符串。我该怎么做才能将 NSData 转换为 NSString。包含所有数据的字符串意味着(如果数据包含空终止。在这种情况下字符串不会结束)?

请帮助提前谢谢。


谢谢回复,看看加密的字节是否包含

当我们将这些 NSData 转换为 NSString 时。它将在第一个 \0 (空终止)处结束,因为我们必须发送加密的 NSString。所以它会出现问题。而且我无法发送base64string,因为服务器端不想要那个。他们要求加密字符串。

所以我现在做什么,请帮助并再次感谢您的回复先生,

0 投票
1 回答
2506 浏览

key - Mifare Ultralight C 3DES 密钥更改

我正在尝试更改 Ultralight C 卡上的 3DES 密钥。我可以将值写入地址 44-47,正如我在此处的某些主题中找到的那样。但是我在使用它时无法进行身份验证。如果我写回默认密钥,它可以正常工作。

我认为有些东西我不明白,这可能是问题的根源,查看免费库示例以及来自这个和 libnfc 论坛的一些帖子,我发现超轻 C 中的默认键是: 425245414b4d454946594f5543414e21 (ASCII 的十六进制值“ BREAKMEIFYOUCAN!"),但要在客户端解密它使用的密钥49454D4B41455242214E4143554F5946

我不知道这两个键之间的关系是什么,但我认为需要进行一些预先确定的操作才能从另一个生成一个,这就是我失败的原因。有人有幸这样做吗?感谢每一个帮助

对于我的所有代码,我都使用此代码作为起点

0 投票
1 回答
2304 浏览

outlook - 无法使用 OpenSSL 解密 AES 加密的 SMIME 消息

我有一个收件人的两封邮件(SMIME 加密)。一封邮件使用 3DES 加密,另一封使用 AES 256 加密。

使用 C# EnvelopedCms类创建的邮件。

我可以使用成功解密 3DES 消息

但是,如果我尝试使用 AES 加密文件,OpenSSL 会输出一些乱码,并且会出现以下注释:

Thunderbird 也无法打开邮件。但是 Outlook 2010 打开邮件没有问题。

解决问题的最佳方法是什么?我可以打开任何日志记录吗?

我已经使用http://lapo.it/asn1js/上的 ASN.1 解码器检查了两封邮件的 ASN.1 结构。两条消息对我来说都不错,所以我猜罪魁祸首在于加密的内容本身。