如何从ComputeHash字符串返回基本值? C#

时间:2018-07-27 15:09:15

标签: hash

这是我的代码

        private void button1_Click(object sender, EventArgs e)
    {
        string myuser= "Admin";
        string mypass= "123";
        SHA256Managed managed = new SHA256Managed();
        this.passwordHashTextBox.Text = Convert.ToBase64String(managed.ComputeHash(Encoding.UTF8.GetBytes(myuser.ToLower() + mypass)));
    }

此代码为我返回此字符串=“ JAvlGPq9JyTdtvBO6x2llnRI1 + gxwIyPqCKAn3THIKk =” 现在我要从此代码获取myuser和mypass 帮我PL .. 谢谢大家

1 个答案:

答案 0 :(得分:0)

TL; DR:您不能(除非您有很多计算能力和/或时间)。 Base64转换可以轻松还原,但是哈希部分是一种单向转换。

当需要证明某人您知道某事(我们称其为X)而不必实际向他展示X(假设他知道hash(X)的样子)时,这是一个非常有用的属性例如,您可以改为给他看hash(X)。之所以有效,是因为几乎不可能找到Y这样的hash(Y)==hash(X)。这只是一个用例,还有更多用例。

尚不清楚您要用该代码完成什么,但是我建议您在继续之前先阅读一些有关散列函数的知识:https://en.wikipedia.org/wiki/Hash_function