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() & "')"
最近、セキュリティホールなどに準拠するために、サーバーを更新/ロックダウンする必要がありました。ただし、そうすると、同じサーバーでホストしているWebサイトの1つでこのエラーが発生しました。これらすべてのセキュリティ設定の前は、Webサイトは問題なく機能していました。
奇妙な部分は、VS 2010内でWebサイトをローカル(デバッグモード)で実行できることです。これは問題なく実行されます。エラーはまったくありません。
これらすべてのセキュリティ設定を不満として追加する前と同じように、Webサイトを再び機能させるために、これを回避する方法について誰かがヒントを持っていますか?他のWebサイトが準拠しなくなるため、無効にすることはできません。
私はすでにこれらのページで提案を試しました:http: //blogs.msdn.com/b/brijs/archive/2010/08/10/issue-getting-this-implementation-is-not-part-of-the -windows-platform-fips-validated-cryptographic-algorithms-exception-while-building-outlook-vsto-add-in-in-vs-2010.aspx
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