パスワード認証

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: パスワード認証

Re: パスワード認証

by hira » 2006年2月24日(金) 19:54

単純な認証であれば、EditBox1に入力された文字列を正しいパスワードと比較し、正しければ進むようにすればよいでしょう。

コード: 全て選択

Dim Buf As String,BufLen As Long
BufLen=GetWindowTextLength(GetDlgItem(hWindowA,EditBox1))+1
Buf=ZeroString(BufLen)
GetDlgItemText(hWindowA,EditBox1,Buf,BufLen)
If lstrcmp(Buf,"12345")=0 Then
    '正しいパスワード
    DialogBox(hWindowA,"WindowB")
Else
    '間違ったパスワード
    MsgBox hWindowA,"パスワードが間違っています。"
End If
↑状況に応じてコードは適宜変更してください。

まあ、このままだと生成したEXEをバイナリエディタで開いたときに正しいパスワードが丸見えになりますので、単純な用途で使うとき以外はパスワードに暗号化を施す必要があります(できればハッシュ関数のように一方向性のものが望ましいです)。
そのときの手順は
1. 正しいパスワードを暗号化したときのデータをあらかじめ作成する。
2. パスワードを入力してもらう。
3. そのパスワードを同じ関数で暗号化し、暗号化された正しいパスワードと比較する。
これである程度安全になるはずです。
※ハッシュ関数では、実は完全な認証にならないことがあります。違うパスワードについて同じデータを返す可能性がわずかながらあるからです。
とはいっても、一方向性であれば逆変換はできないようになっていますから、偶然違うパスワードで入れてしまう可能性は限りなく0に近いでしょうが(但し0ではありません)。
パスワードがある程度短い場合は、完全ハッシュ関数も検討するとよいでしょう。

パスワード認証

by ネットスカイ@ » 2006年2月24日(金) 18:37

Window A のEditBox1の入力されたパスワードを認証しあっていれば
Window B に進めるようなソースコードを教えてください。

ページトップ