全て、
前もって申し訳ありませんが、私は以下のトピック (SQL、ASP) のほとんどについて初心者です。ともかく...
ユーザーがユーザー名とパスワードを使用してログインする必要がある非常に単純な Web アプリがあります。
フロント エンドは、ソルト化されたパスワードの SHA1 ハッシュを作成し、それを (ユーザー名と共に) ASP ページに投稿します。
その ASP ページはデータを受け取り、SQL Server データベースのストアド プロシージャを呼び出し、ユーザー名とハッシュ化されたパスワードを渡します。ストアド プロシージャは、情報を「users」テーブルに書き込みます。
表のパスワード列のタイプは varbinary です。
私が知る限り、ASP がパスワード (password = Request.Form("password")) を取得すると、それは文字列になります。
この方法でクエリを作成すると、SQL Server を「だまして」varbinary として処理させることができます。
query = "EXEC sp_save_user @username='" & ユーザー名 & "', @password=0x" & パスワード
IOW - パスワード文字列の先頭に「0x」を追加しています。
ただし、パラメーター化されたクエリを使用することをお勧めします。
例: SET objParam = objCommand.CreateParameter("@password",204, 1, 40, password)
ただし、パラメーターはバイナリ (204) であるはずですが、パスワードは文字列であるため、これは失敗します。
では、「4a5e6a8d521ed487b81c91e131cf27e8dae9b783」のような文字列を ASP でバイナリに変換するにはどうすればよいでしょうか。
よろしくお願いします!