【问题标题】:Encrypt DES with hash MD5使用哈希 MD5 加密 DES
【发布时间】:2009-12-14 08:34:58
【问题描述】:

我必须使用 DES 算法和在 MD5 中创建的散列来加密文本。 MD5 函数有参数:salt (byte[8]) 和 key (string 6),它必须迭代 1000 次。当我通过 MD5 加密函数时,它返回一个字节 [16]。

DES 函数参数是:要加密的字符串和密钥(由 MD5 函数返回)。但是当我尝试将键值分配给键编码器时,我得到一个异常,因为它等待一个 bte[8] 而不是一个字节 [16]。我尝试获取前 8 个字节或后 8 个字节.....但它不起作用(我有一个示例,我必须得到相同的结果)。

一些想法???

【问题讨论】:

  • 您使用什么语言? “它不起作用”是指您仍然遇到异常,或者您的输出与您必须重现的样本的输出不匹配?请提供更多详细信息。

标签: encryption


【解决方案1】:

DES(不要与 3DES 混淆)有 56 位密钥。您的问题需要更多定义才能确定键的正确选择。

今天没有理由使用 DES。有更好的、完整的算法可用。

【讨论】:

    【解决方案2】:

    为什么使用哈希作为加密密钥?密钥应该是加密安全的随机数据,而不是散列。散列本身根本不是加密。

    DES 密钥是 56 位,通常打包成 8 个字节,因此从散列中取出前 8 个字节意味着您的密钥太长(取决于它是有符号还是无符号),如果您需要提取 56 位必须使用哈希作为来源。

    【讨论】:

    • 看来 Paloma 正在通过 1000 次 MD5 迭代对用户提供的密钥进行密钥拉伸 (en.wikipedia.org/wiki/Key_strengthening)。这是一种有效的技术。
    • 好吧,他最好使用 PKCS #5 之类的东西来派生密钥
    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2020-12-08
    • 2010-12-06
    相关资源
    最近更新 更多