• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

membership的密码是怎么加密的

vicqqq 2007-09-04 10:27:00
我用sha1加密怎么加密出来的不一样?
...全文
446 点赞 收藏 12
写回复
12 条回复
kyouken2007 2007年09月04日
你去找个别人写好的sql以外版本的MembershipProvider代码,看看就知道啦。
我手里有个oracle的,但是错误一堆。。
回复 点赞
vicqqq 2007年09月04日
哪里有这个资料
回复 点赞
kyouken2007 2007年09月04日
这个是自己写的,
EncryptPassword是MembershipProvider的方法。
继承MembershipProvider之后可以使用
回复 点赞
vicqqq 2007年09月04日
Membership没有这个方法,MembershipProvider就有一个是受保护的方法,调用不了
回复 点赞
kyouken2007 2007年09月04日
什么方法?你不是要给密码加密吗?这个就是membership的加密方法
回复 点赞
vicqqq 2007年09月04日
EncryptPassword是什么方法?
回复 点赞
kyouken2007 2007年09月04日
pass:密码
passwordFormat:webconfig里边的加密方式
salt:用于生成密码的。。。代码如下

public static string GenerateSalt()
{
byte[] buf = new byte[16];
(new RNGCryptoServiceProvider()).GetBytes(buf);
return Convert.ToBase64String(buf);
}
回复 点赞
vicqqq 2007年09月04日
楼上的那些参数是啥意思
回复 点赞
kyouken2007 2007年09月04日
internal string EncodePassword(string pass, int passwordFormat, string salt)
{
if (passwordFormat == 0) // MembershipPasswordFormat.Clear
return pass;

byte[] bIn = Encoding.Unicode.GetBytes(pass);
byte[] bSalt = Convert.FromBase64String(salt);
byte[] bAll = new byte[bSalt.Length + bIn.Length];
byte[] bRet = null;

Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length);
Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length);
if (passwordFormat == 1)
{ // MembershipPasswordFormat.Hashed
HashAlgorithm s = HashAlgorithm.Create(Membership.HashAlgorithmType);
bRet = s.ComputeHash(bAll);
}
else
{
bRet = EncryptPassword(bAll);
}

return Convert.ToBase64String(bRet);
}
回复 点赞
watson110 2007年09月04日
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "sha1");
=======
我是这么写的,一样啊
回复 点赞
vicqqq 2007年09月04日
就是sha1啊
回复 点赞
活靶子哥哥 2007年09月04日
看你web.config内配置的何种加密算法
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告