我被要求通过创建一个新程序来加密密码,我想的是使用位来改变我的输入键的每个字符与显然不相关的字符,所以我写了这个函数:
(我正在使用PHP代码):
font-family: "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, sans-serif;
当然,在我加密密码后,我应该可以解密它。
有没有办法做到这一点?
你不需要把代码写给我,如果你能用文字向我解释它会很棒。
答案 0 :(得分:1)
"当然我加密密码后,我应该可以解密它。" - 从根本上说错了!右加密函数(即散列函数)不应具有反向函数。非常简单的识别算法:
1.用户输入密码
2.使用加密函数(entered_hash = f(密码))从密码中获取哈希值
3.将entered_hash与right_hash_stored进行比较
从不存储密码,只有哈希!
我认为,如果你想让你的加密函数反转,它应该包含反向函数,所以AND和OR不是这样,但是ROT和XOR是。 所有你需要的 - ROT / XOR的顺序(对于XOR掩码你可以使用previos squense步骤的加密值,在这种情况下它必须保存)