嘿,我在尝试使用我的 ASP.net 页面比较数据库中的密码时遇到此错误。
此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。
代码如下所示:
Public Shared Function UserAuthentication(ByVal user As String, ByVal pass As String) As WebUserSession
Dim strSQL As String = ""
Dim strForEncryption As String = pass
Dim result As Byte()
Dim sHA1Managed As SHA1 = New SHA1Managed()
Dim encryptedString As New System.Text.StringBuilder()
result = sHA1Managed.ComputeHash(ASCIIEncoding.ASCII.GetBytes(pass))
For Each outputByte As Byte In result
'convert each byte to a Hexadecimal upper case string
encryptedString.Append(outputByte.ToString("x2").ToUpper())
Next
strSQL &= "SELECT email, name, id, permission_id, username FROM (user) INNER JOIN user_per ON user.id = user_per.user_id "
strSQL &= "WHERE(username = '" & user & "' And password = '" & encryptedString.ToString() & "')"
我们最近不得不更新/锁定我们的服务器以符合安全漏洞等。但是这样做会导致我们在同一服务器上托管的其中一个网站出现此错误。在所有这些安全设置之前,网站运行良好。
奇怪的是,我能够在 VS 2010 中本地运行网站(调试模式),而且效果很好。完全没有错误。
在我们添加所有这些安全设置以进行投诉之前,是否有人对如何解决此问题以使网站再次运行有任何提示?我们不能只是禁用它,因为这会导致我们的其他网站不合规。
http://social.msdn.microsoft.com/Forums/en/clr/thread/7a62c936-b3cc-4493-a3cd-cc5fd18b6b2a
http://support.microsoft.com/kb/935434
http://blog.aggregatedintelligence.com/2007/10/fips-validated-cryptographic-algorithms.html
谢谢。
也尝试使用此代码
Dim p As String = Password.Text.ToString
Dim data(p) As Byte
Dim result() As Byte
Dim sha As New SHA1CryptoServiceProvider()
result = sha.ComputeHash(data)
错误是:
从字符串“S51998Dg5”到类型“Integer”的转换无效。
并且该错误在线:Dim data(p) As Byte