HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
1219
あああATMを作っているのですが3未解決


あああ

リンク

2014/12/19(Fri) 22:21:13|NO.66511

hspでATMを作っているのですが、あらかじめ設定しておいた口座番号と入力した口座番号があっているかを確認するにはどうすればいいですか?
また口座番号がいっぱいあって、その中からどれなのかを選ぶにはどうすればいいですか?



この記事に返信する


cats

リンク

2014/12/19(Fri) 22:44:40|NO.66512

ATMを作るというのはソフトウェア内での概念上の話として、
暗証番号一覧のデータから1つずつチェックしていけばいいです。
ただ、暗証番号を保存しておくのは危険なのでMD5などのハッシュで計算したものを保存しておきましょう。
とはいえ暗証番号レベルのハッシュは辞書からすぐに検索できてしまうんですがね。



あああ

リンク

2014/12/19(Fri) 23:05:02|NO.66516

具体的にお伺いできますでしょうか?



cats

リンク

2014/12/19(Fri) 23:50:17|NO.66517

あああ さんがどの程度まで作れているのかが分からないので何とも言えないです。
MD5をHSPで扱う方法はいくらかありますが、こちらのモジュールを使ってみてはどうでしょうか。
http://d.hatena.ne.jp/As_hsp/20091205/1259992330
ただし、コメント欄にあるように、このモジュールには重大な誤りがあるので修正してから組み込んでください。
関数をMD5とすると、以下のようなものが理想形です。
[md5ハッシュ値] hoge
if MD5( IN ) == hoge {
// 認証成功
}
つまり、MD5変換済みのデータと、入力のMD5を比較しているのです。
多くの認証システムではこれと似た方法が用いられています。

先ほどのリンクのモジュールのl1の代入部分を

l1 = strf("%08x", pbHash(cnt))
に書き換えて以下のプログラムを実行すると流れが分かると思います。

// データ(MD5変換済み) data = "81dc9bdb52d04dc20036dbd8313ed055" // 現在の入力(input等) IN = "1234" // 入力と比較 if GetHash_MD5( IN, strlen(IN) ) == data { dialog "認証成功" } else { dialog "認証失敗" } stop



ONION software Copyright 1997-2018(c) All rights reserved.