这不是一个真正的实际问题,而是一个好奇的问题。我听说一位 CS 教授建议从 md5ing 密码升级到 SHA1,而不是使用 AES 加密密码,使用自身作为密钥。有没有人知道这实际上或多或少是安全的?
关于这个问题的一些想法:
- SHA1 是单向的,这应该比保留数据的函数更安全。
- 另一方面,黑客不可能利用 AES 的可解密特性,因为他还不知道密码。
- 除非他猜到。但是无论我如何加密它,他都会在里面。
- 由于您知道当解密密钥与输出匹配时,AES 的密码被解密,因此它可能会在黑客的计算机上被暴力破解。
- 但黑客不知道它是如何加密的,所以他不会尝试那样做。
- 但黑客也可能获得了加密代码,在这种情况下,这只是一个问题,即哪些数据需要更长的时间才能暴力破解。
- 大多数网站使用 md5 或 sha1(对吗?),因此这些哈希的查找表将比 AES 方法更广泛。从而使AES方法更加安全。
- 但是,如果我们对这两种方法都加盐,它们将同样不受查找表的影响。
答案中的一些共同点和反点:
AES 加密并非旨在抗冲突,因此对于相同的哈希字符串长度可能会有更多的冲突。
如果我们使用更长的盐,那么加密密码将比 SHA1 哈希长。这可能足以将碰撞降低到可比较的水平 - 或者可能不会。
AES 加密告诉您密码有多长,在 16 个字节内。
我们可以添加到 AES 方法:加密后,我们填充或修剪到合理的长度(比 SHA1 的长以避免冲突)。