我正在使用VB.NET 2010。
我的一行代码是:
Encoding.UTF8.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox_AccessCode.Text, "MD5"))
但FormsAuthentication带有下划线,并且未声明错误读取“FormsAuthentication”。我确保已导入System.Web.Security命名空间,但仍然收到消息。
有什么想法吗?
谢谢。
答案 0 :(得分:0)
FormsAuthentication构成了asp.net中使用的System.Web的一部分,并且无法通过Win Forms访问。不完全确定你是否能够导入dll并以这种方式使用它,我怀疑它......
如果您只想散列md5字符串,可以在下面执行:
new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bs = System.Text.Encoding.UTF8.GetBytes(TextBox_AccessCode.Text);
x.ComputeHash(bs);
答案 1 :(得分:0)
感谢TBohnen.jnr,我发现Forms Authentication不是通过VB.NET的Windows Forms的一部分。我最终使用以下代码生成MD5哈希:
Public Shared Function MD5(ByVal str As String) As String
Dim provider As MD5CryptoServiceProvider
Dim bytValue() As Byte
Dim bytHash() As Byte
Dim strOutput As String = ""
Dim i As Integer
provider = New MD5CryptoServiceProvider()
bytValue = System.Text.Encoding.UTF8.GetBytes(str)
bytHash = provider.ComputeHash(bytValue)
provider.Clear()
For i = 0 To bytHash.Length - 1
strOutput &= bytHash(i).ToString("x").PadLeft(2, "0")
Next
Return strOutput
End Function