平成26年春期午後問6

クロノさん  
(No.1)
https://www.ap-siken.com/kakomon/26_haru/pm06.html
平成26年 春期 午後 問6 データベースの問2についてなんですが、

>>例えば,文字列'いろは'のハッシュ値を求める場合,HASH('いろは')と記述する。

とあるように HASH('文字列') とするなら
cかdの回答は「パスワードハッシュ値 = HASH(':パスワード')」
なのかと思ったんですが、これだとバツになるのでしょうか?
それとも例「いろは」は文字列だけど、「:パスワード」は文字列とは限らないからシングルクォーテーションで囲んだらダメという引っ掛け的な事なのでしょうかね
2023.02.04 15:21
y4 kさん 
(No.2)
クロノさん
>cかdの回答は「パスワードハッシュ値 = HASH(':パスワード')」
>なのかと思ったんですが、これだとバツになるのでしょうか?
バツです。
シングルクォーテーションで囲むと、':パスワード'という固定値が対象です。
この場合、都度変わる文字列を代入したいのだから、シングルクォーテーションで囲んではいけません。

「バインド変数」という用語を調べてみるのをお勧めします。
2023.02.04 16:06
クロノさん  
(No.3)
y4 kさん
返信ありがとうございます

>>例えば,文字列'いろは'のハッシュ値を求める場合,HASH('いろは')と記述する。
この部分がどうも引っかかってました
文字列「いろは」のハッシュ値じゃなくて文字列「'いろは'」という前後にシングルクォーテーションが付いたハッシュ値が求まりますよね

そもそも問題文では「'いろは'」というシングルクォーテーションまで含めたハッシュ値を求める時の例を出していたということにしときます
2023.02.04 16:47
y4 kさん 
(No.4)
この投稿は投稿者により削除されました。(2023.02.04 18:32)
2023.02.04 18:32
y4 kさん 
(No.5)
クロノさん
ひょっとして御自身でSQL組んだことないですか?

SQLで文字列を扱う時の決まりが、'(シングルクォーテーション)で囲む です。
'いろは'と書く事で、いろは  という文字列を認識します。
同様に':パスワード'と書くと、 :パスワード という固定値になってしまいます。

今回はSQLに入力したパスワードのハッシュ値を代入したい訳です。
そこでパスワードをバインド変数にして、ここに入力値を指定するSQLとします。
そして、この問題における表現方法が
   パスワードハッシュ値 = HASH(:パスワード)
なのです。
2023.02.04 18:33

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop