首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.net Identity使用什么算法来加密密码?

问Asp.net Identity使用什么算法来加密密码?
EN

Stack Overflow用户
提问于 2014-07-15 13:14:39
回答 2查看 13.9K关注 0票数 11

Asp.Net Identity框架使用哪种算法来加密密码?我有一个场景,安卓,iPhone,网络和桌面使用相同的数据库。这个密码应该是加密的,所以在ASP.NET MVC中,我使用了身份框架来加密密码。现在我需要让算法在所有平台上都能工作。

任何帮助都将不胜感激。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-07-15 13:45:41

ASP.NET Identity使用由Rfc2898DeriveBytes实现的Password-Based Key Derivation Function 2 (PBKDF2)。它是一种散列算法。

请注意encryption and hashing are different。

代码语言:javascript
复制
public static string HashPassword(string password)
{
    byte[] salt;
    byte[] bytes;
    if (password == null)
    {
        throw new ArgumentNullException("password");
    }
    using (Rfc2898DeriveBytes rfc2898DeriveByte = new Rfc2898DeriveBytes(password, 16, 1000))
    {
        salt = rfc2898DeriveByte.Salt;
        bytes = rfc2898DeriveByte.GetBytes(32);
    }
    byte[] numArray = new byte[49];
    Buffer.BlockCopy(salt, 0, numArray, 1, 16);
    Buffer.BlockCopy(bytes, 0, numArray, 17, 32);
    return Convert.ToBase64String(numArray);
}
票数 20
EN

Stack Overflow用户

发布于 2021-05-11 18:31:46

这取决于所选的兼容模式。

实施详情可在其Github repo中找到

此时此刻,他们支持:

版本2

带HMAC-SHA1的

  • PBKDF2,128位salt,256位子密钥,1000 iterations
  • Format:{ 0x00,salt,子密钥}

版本3

带HMAC-SHA256的

  • PBKDF2,128位salt,256位子密钥,10000 iterations.
  • Format:{ 0x01,prf (UInt32),iter count (UInt32),salt length (UInt32),salt,subkey }(所有UInt32s都存储在SHA256中
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24750266

复制
相关文章

相似问题

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