Algorithm 如果我开发自己的散列算法,从简单的密码(Gmail、Skype等)创建强密码,会怎么样?

Algorithm 如果我开发自己的散列算法,从简单的密码(Gmail、Skype等)创建强密码,会怎么样?,algorithm,hash,passwords,Algorithm,Hash,Passwords,我想出了这个主意,但我不知道它是好是坏,也许你能帮上忙。 我的目标是:我想为我的主要帐户(gmail、skype等)创建非常强大的密码。我希望我的所有帐户都有不同的密码,长度超过20个字符,并且包含小写+大写字符、数字和特殊字符。你会怎么做才能做到这一点 要记住这样一个密码是非常不可能的,所以我想到了这个主意:如果我开发一个(简单而秘密的)散列算法,将简单的密码(甚至3或4个字符)转换成强密码,会怎么样 在这种情况下,我只需要记住“狗”代表我的Gmail,“黑色”代表雅虎等等。当你必须登录时,你

我想出了这个主意,但我不知道它是好是坏,也许你能帮上忙。 我的目标是:我想为我的主要帐户(gmail、skype等)创建非常强大的密码。我希望我的所有帐户都有不同的密码,长度超过20个字符,并且包含小写+大写字符、数字和特殊字符。你会怎么做才能做到这一点

要记住这样一个密码是非常不可能的,所以我想到了这个主意:如果我开发一个(简单而秘密的)散列算法,将简单的密码(甚至3或4个字符)转换成强密码,会怎么样

在这种情况下,我只需要记住“狗”代表我的Gmail,“黑色”代表雅虎等等。当你必须登录时,你只需在你的手工脚本中处理你的简单密码,然后进行转换,而不是复制粘贴

我认为这种方法很好,原因如下:

  • 如果你的散列算法是不可逆的和秘密的,那么通过拥有(甚至很多)强密码(不管怎样,如果有人在gmail、论坛、即时消息等上入侵了你的所有主要帐户,你一定很不走运)

  • 我只需要记住我所有账户中极其简单的单词,而我的“最终密码”将在很多年内都是防弹的

  • 如果做得好,一个简单的散列算法就可以被记住并在纸上使用,而不是制作脚本(最终可能被偷走)。该算法可以很容易,因为你不需要一个非常好的雪崩效应(你不会产生数万个密码,也许几年内只有100或200个

即使黑客能够理解你的哈希算法中的公式,你的算法也没有公开的彩虹表,我高度怀疑你的gmail帐户是否有价值,以至于任何人都会开始创建一个。这种方法只适用于日常密码,不适用于涉及NSA的高风险情况,而且很好因为算法只与你的密码有关,因为它不是公开的。MD5被成千上万的网站使用,这就是为什么人们开始浪费时间/金钱破解它。我的个人算法将只是我的,所以没有人会有兴趣投资破解它

你怎么看


请原谅我的英语非常糟糕:)

你的想法不是最糟糕的,但问题是显而易见的(你自己也提到过)

  • 整个安全性取决于算法是否保密。在您的情况下,这可能不是问题,但将来可能会成为问题(取决于您保护的内容)
  • 如果脚本是已知的,那么“隐蔽性安全”就不复存在了,这意味着攻击者只需暴力破解弱密码即可
  • 在我看来,主要的缺点是,无论何时需要输入密码,都必须启动脚本(否则更像是密码方案)。如果您每次都要启动一个工具,那么您也可以轻松启动密码管理器工具,如:


    这样的工具可以放在U盘上,你可以使用真正强大的密码,甚至不需要发明/记住弱密码。

    好主意,但已经完成了。结账有一个在线版本,可以作为扩展提供。一件很酷的事情是你的主密码不必随网站的不同而变化。它可以是相同的,但根据输入的URL,它会吐出不同的密码。正如您所提到的,生成的密码的长度是可配置的,您可以选择应用哪个哈希算法。

    我不确定这个问题在这里是否可以回答。也许是开着的?只是一个评论:你现在需要保护一个程序(可能存储在很多地方,因为你不能失去它),而不是保护一个密码(存储在你的脑袋里)。这看起来不太安全。如果你能让散列算法变得如此简单,以至于可以用笔和纸来计算呢?这可能很容易,因为您不需要SHA&co提供的极端安全性,因为您将是该代码的唯一用户(我正在考虑一些XOR操作、mod操作等等)。。。这开始看起来像一些(许多?)程序员所做和不做的。提示:您可以将目标作为salt包含在函数中。;)我觉得你的想法很合理。当你必须通过智能手机或平板电脑而不仅仅是个人电脑访问你的账户时,这可能会很麻烦。