首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SHA256解密

从SHA256解密
EN

Stack Overflow用户
提问于 2012-04-23 04:03:19
回答 2查看 56.9K关注 0票数 10

我有将字符串加密到sha256和base64旁边的代码:

代码语言:javascript
复制
 public static string Sha256encrypt(string phrase)
    {
        UTF8Encoding encoder = new UTF8Encoding();
        SHA256Managed sha256hasher = new SHA256Managed();
        byte[] hashedDataBytes = sha256hasher.ComputeHash(encoder.GetBytes(phrase));
        return Convert.ToBase64String(hashedDataBytes);
    }

我如何在另一边解密我的密码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-23 04:07:01

您无法解密One Way Hash的结果。相反,您应该做的是将输入的密码的散列与数据库中存储的散列进行比较。

示例:

代码语言:javascript
复制
var password = "1234";
var hashedPassword = Sha256encrypt(password);

var allowLogin = hashedPassword == storedPassword; //storedPassword from Database, etc.

不过,这只是最基本的,当使用散列算法时,您也应该考虑使用Salt

票数 24
EN

Stack Overflow用户

发布于 2012-04-23 04:04:26

这本身是不可能的。SHA是一个散列函数,这意味着它是单向的,只用于验证和类似的事情。由于SHA-256的结果是固定长度(256比特)的,这也意味着在计算它时大多数信息都会丢失。

不过,您可以对其进行暴力破解,这意味着您可以尝试计算大量不同输入的散列,并查看散列是否匹配。

在未来的某个时候,可能会发现SHA的密码弱点,从而使其可破解,但实际上它不是可逆函数。

Wikipedia上查看有关散列函数的详细信息。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10271645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档