Encryption 可以加密的密码的最大长度

Encryption 可以加密的密码的最大长度,encryption,cryptography,password-encryption,Encryption,Cryptography,Password Encryption,我正在使用PBEWithMD5和DES算法加密密码。我需要在db列中存储加密密码。根据密码长度,我必须决定db列的长度。我想知道使用上述算法可以加密的密码的最大长度是多少 如果这是一个访问系统上某些内容的密码,则根本不应将其加密存储,而应存储一个不可逆且缓慢的散列,有时伪装为PBKDF(基于密码的密钥派生函数)。这提供了更好的安全性,这对于SO来说是个话题,但在security.SX上已经讨论了数千次,而在crypto.SX上则讨论得更少。有关规范和许多链接,请参见 如果确实需要加密存储,则PB

我正在使用PBEWithMD5和DES算法加密密码。我需要在db列中存储加密密码。根据密码长度,我必须决定db列的长度。我想知道使用上述算法可以加密的密码的最大长度是多少

  • 如果这是一个访问系统上某些内容的密码,则根本不应将其加密存储,而应存储一个不可逆且缓慢的散列,有时伪装为PBKDF(基于密码的密钥派生函数)。这提供了更好的安全性,这对于SO来说是个话题,但在security.SX上已经讨论了数千次,而在crypto.SX上则讨论得更少。有关规范和许多链接,请参见

  • 如果确实需要加密存储,则PBewithMD5和DES是不安全的。使用此算法加密存储的任何值都可以由有能力的攻击者在数小时内(最多数小时,可能数秒)轻松解密,因此几乎不值得加密

  • 尽管如此,我还是要回答您提出的唯一一个问题:使用这种算法可以不安全地加密的数据的大小没有固有的限制。与所有Java
    Cipher
    实例一样,它使用
    init、update、doFinal
    结构,尽管Java语言将一次调用传递或返回的
    byte[]
    参数的大小限制为略小于2^31(约210000000)字节,但您可以进行任意数量的调用。(对于安全密码,根据算法和模式,数据大小有一些限制,以保持安全,但由于这一限制从一开始就不安全,因此不会因超过可能降低安全性的数据大小而丢失任何东西。)

    处理更多数据将需要越来越多的时间,因为此密码使用CBC模式,无法在加密上并行或管道化。我没有测量过,不管怎样,它会根据您的硬件和某种程度上的Java版本而有所不同,但是如果您想加密10000000000000000字节,它可能需要300000年的时间。你的电脑可能用不了那么久

    由于您希望将结果存储在数据库中,因此几乎肯定会有一些限制。即使没有体系结构限制,或者没有有效的限制,每个数据库最终都会受到磁盘大小或它可以使用的等效存储的限制,并且数据中心中所有存储的总量(当然不是全部)是有限的

  • 如果这是一个访问系统上某些内容的密码,则根本不应将其加密存储,而应存储一个不可逆且缓慢的散列,有时伪装为PBKDF(基于密码的密钥派生函数)。这提供了更好的安全性,这对于SO来说是个话题,但在security.SX上已经讨论了数千次,而在crypto.SX上则讨论得更少。有关规范和许多链接,请参见

  • 如果确实需要加密存储,则PBewithMD5和DES是不安全的。使用此算法加密存储的任何值都可以由有能力的攻击者在数小时内(最多数小时,可能数秒)轻松解密,因此几乎不值得加密

  • 尽管如此,我还是要回答您提出的唯一一个问题:使用这种算法可以不安全地加密的数据的大小没有固有的限制。与所有Java
    Cipher
    实例一样,它使用
    init、update、doFinal
    结构,尽管Java语言将一次调用传递或返回的
    byte[]
    参数的大小限制为略小于2^31(约210000000)字节,但您可以进行任意数量的调用。(对于安全密码,根据算法和模式,数据大小有一些限制,以保持安全,但由于这一限制从一开始就不安全,因此不会因超过可能降低安全性的数据大小而丢失任何东西。)

    处理更多数据将需要越来越多的时间,因为此密码使用CBC模式,无法在加密上并行或管道化。我没有测量过,不管怎样,它会根据您的硬件和某种程度上的Java版本而有所不同,但是如果您想加密10000000000000000字节,它可能需要300000年的时间。你的电脑可能用不了那么久

    由于您希望将结果存储在数据库中,因此几乎肯定会有一些限制。即使没有体系结构限制,或者没有有效的限制,每个数据库最终都会受到磁盘大小或它可以使用的等效存储的限制,并且数据中心中所有存储的总量(当然不是全部)是有限的


  • 您真的需要以可逆形式存储密码吗?如果密码用于客户端用户身份验证,您可能需要阅读以下指南是否确实需要以可逆形式存储密码?如果密码用于客户端用户身份验证,您可能需要阅读以下指南
    pbewithmd5和des。。值最多可以在几小时内解密,可能在几秒钟内解密
    ——由于MD5本身是代理,而DES非常短,攻击者最终需要找到一个64位未知密钥。这需要比几天多一点的时间。(我同意今天应该跳过任何有MD5或DES名称的内容)。如果我错过了什么或者你有什么资源,如何更快地打破PBE(MD5/DES的组合),你能传递一个参考吗?(我想知道我是否误解了什么)@gusto2:DES键是56位,而不是64位。
    PBEwithMD5andDES。。值最多可以在几小时内解密,可能在几秒钟内解密
    ——由于MD5本身是代理,而DES非常短,攻击者最终需要找到一个64位未知密钥。这需要比几天多一点的时间。(我同意