问题标签 [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.
c# - C# 中的 TripleDES 解密
嗨,当我使用相同的实例TripleDES = new TripleDESCryptoServiceProvider();
正确地解密消息时,但是当我尝试使用新实例进行 dcrypt 时,它显示“错误数据”
c# - C# 中 TripleDES 的指定密钥大小是多少?
所以我试图在 C# 中使用 TripleDES 算法。
但是,我不断收到错误消息,说它不是指定的密钥大小。
这是什么意思,我该如何解决?
它在线上发生:
pdb 是一个 Rfc2898DeriveBytes。
所以是的,我该如何解决这个错误?
encryption - TripleDESCryptoServiceProvider - 易受拒绝服务攻击?
我们有一个旧的 ASP.NET 站点,它在此处使用加密方法:
http://www.codekeep.net/snippets/af1cd375-059a-4175-93d7-25eea2c5c660.aspx
当我们调用以下方法时,页面加载非常缓慢,最终返回 Connection Reset:
如果在后续的页面请求中多次调用该方法,应用程序池将关闭。
这发生在运行 .NET framework v3.5 的 Windows 2008 服务器上。
我将问题缩小到TransformFinalBlock()
电话。
注意:在 Cassini 上,我没有收到连接超时;而是引发以下异常:
为其他字符串调用 Decrypt() 在任何环境中都不会出现问题。
为什么会这样?这是 TripleDESCryptoServiceProvider 中的错误吗?
显然,我可以过滤 cipherString 以拒绝 " " 并避免这个特定问题。但是,我担心我不怀疑的其他一些 cipherString 值会导致 DoS。
更新 2011.06.28
以下是重现该问题的最少代码:
encryption - TripleDES 密钥大小 - .NET 与 Wikipedia
根据维基百科,TripleDES 支持 56、112 和 168 位密钥长度,但 System.Cryptography.TripleDESCryptoServiceProvider.LegalKeySizes 表示它只接受 128 和 192 位密钥长度。
我正在开发的系统需要可互操作(由我的代码加密的数据需要在 PHP、Java 和 Objective-C 中可解密),在这种情况下我不知道谁是正确的。
那我应该相信谁?我如何确保我的加密数据是可移植的?
c# - 我的 TripleDES 包装器不起作用
紧接着我上一个与 TripleDES 相关的问题,这是我的 TripleDES 包装代码,用于加密和解密整数:
当我运行它时,我得到每个输入的确定性结果EncryptID
,但每次调用都DecryptID
返回零。我进入代码并说“输出”数组的内容全为零(并tr.TransformBlock
返回零)。有谁知道我做错了什么?
我试着打电话tr.TransformFinalBlock
,但我遇到了一个例外:
php - 什么可能导致 PHP mcrypt 破坏数据?
我正在使用 mcrypt 函数使用 TripleDES 加密文本块。90%的时间它应该正常工作,我可以很好地解密。剩下的 10% 虽然我根本无法解密它——好像我的密钥错误或数据被破坏了一样。
功能如下:
它们的键和 IV 是正确的长度(分别为 24/8)并且永远不会改变。就像我说的,它在所有东西上运行完全相同的代码,但只有 10% 以这种方式失败。
有什么我可以传递的$text
导致这种情况吗?它不喜欢某些字符集吗?还是由于内存不足/其他一些服务器状况而发生这种情况?
任何帮助解决这个问题将不胜感激。谢谢!
java - 从 android 调用时,TripleDES 算法会产生不同的结果
我有一个由 apache wicket 构建的简单 Java Web 应用程序。当我在网络应用程序中注册用户时,我使用三元组加密他们输入的密码并将其保存到数据库中。在登录页面,当他们输入相同的密码时,我对其进行加密并将加密后的密码传递给数据库,以检查它是否正确。
现在我正在构建一个具有相同登录功能的安卓应用程序。
在 android 应用程序登录页面中,我使用相同的加密库来加密密码,并且我对两个平台使用相同的密钥和初始化向量,但是如果我尝试在 android 中输入相同的密码字符串,TripleDes 算法会生成完全不同的加密密码(很多更长)。因此从 android 设备登录失败。我还注意到android生成的加密密码无法解密,它会引发异常。
我认为两个平台之间可能存在字符串编码问题差异,但无法弄清楚是什么原因造成的以及如何解决它。
这是我使用的算法:
}
.net - 如何为 TripleDESCryptoServiceProvider 生成强加密密钥
我正在使用TripleDESCryptoServiceProvider
并且需要存储加密密钥。
如果我调用 providersGenerateKey
方法,这只是一个 base64 编码的字符串吗?如果是这样,我可以安全地取消编码,例如使用生成的字符串作为键吗?
稍微不同的是,在进行单向哈希时,使用相同的密钥作为盐密钥有什么问题吗?我正在为.net 编写一个简单的会员提供程序,它允许用户选择加密技术(普通、哈希、加密),所以想知道是否有必要让用户同时指定盐密钥和加密密钥。
.net - 如果我有 IV、加密数据和结果值,我可以在三重 DES 加密算法中找到密钥吗?
这并不意味着任何类型的黑客攻击,我只是在尝试使用 .NET 中的三重 DES 加密技术。我有一些测试数据。我必须用给定的数据得到结果。我也有结果。但值永远不会匹配。我确信代码很好(将在下面给出)。所以我认为唯一的可能是钥匙错了,所以让我们找到钥匙,看看是否匹配。下面是我的代码:
最后的结果是1B529558534F43D15556AD65C7E396D5674EE8A09E0A29A84389020EF820AC51B7D5E1B33BDA18A2
。由于我只需要 16 个字节,因此我只将前 16 个字节转换为 hex 1B529558534F43D15556AD65C7E396D5
。
但预期的结果是76db821f5c7af12dc8d70a6a79cfcb77
如果我能找到密钥,我可能知道密钥中也需要进行某种处理。
谢谢您的帮助!
java - 用于 Java 三重 DES 加密/解密的 PHP 等效项
我正在尝试使用 PHP mcrypt 函数解密由 Java Triple DES 函数加密的密钥,但没有运气。在下面找到java代码
我想写一个与上面decryptText Java函数等效的PHP函数。我发现难以生成由 Java 代码生成的用于加密的确切 IV 值,这是解密所必需的。