推しミネラルウォーターはありますか?

フリーソフトを仮に作るとして、パスワードを設定しないと
変更することのできない設定項目があるとして、
そこに入力したパスワードをINIファイルに保存しておきたいと
考えます。

しかし、ただパスワードをINIファイルに保存しただけでは
INIファイルの場所がわかればすぐに中身を開いて判別されてしまう
と思います。

あるフリーソフトで同じようなことをやっていたのですが、
そのソフトのINIファイルには
Password=83BBB6C5B8C5B6C5C4
みたいな感じになっていました。

こういう風に保存するにはどのようにすればよいのでしょう?
また、プログラム内でどのように戻しているのでしょうか?

どなたか教えて下さい。

A 回答 (3件)

cryptでの暗号化だと思います。

    • good
    • 0

パスワードの暗号化についての考え方はこちらを参考にしてください。


要約すると、
・一方向関数の結果をパスワードとして保存
・認証時に入力されたパスワードを同じ一方向関数を通し、保存したものと比較する
ということです。
http://www.tokix.net/texts/017/4.html

Windowsには、APIにcryptが実装されているようなのでそれを使えばいい
ようですが、詳しいことは調べていません。

めんどうなら、こんなツールを使う手もありますが...
http://www.vector.co.jp/ys/soft/win95/util/se207 …

この回答への補足

うーん、よく分かりません・・
上のツールを使用しようとしてみたのですが、
暗号化できません、複合化できまえせんと
うまく動きません・・。

もっと簡単なサンプルはないでしょうか・・

補足日時:2003/03/16 10:43
    • good
    • 0

暗号化なんてものは、要するに解読されないようにするものなので


人に聞いたりしてやっても、意味があるかどうか・・・。

まぁ、どの程度のものって言うのもありますが参考に。

パスワード元文字列:hoge
パスワード暗号化文字列:686f6765
各文字をAsciiに変換してそれを16進に変換したサンプル。
pw1 = "hoge"
For i = 1 To Len(pw)
pw2 = pw2 & " " & Hex(Asc(Mid(pw1, i, 1)))
Next
暗号化文字列を元に戻すサンプル。
For i = 1 To Len(pw2) Step 2
pw3 = pw3 & Chr("&H" & Mid(pw2, i, 2))
Next

結果:pw1 = pw3 になります。

まぁ、単純なものはこんな感じでも出来ますね。
要するにどのようにもとの文字列がわからなくするかが暗号化ですから
ご自分なりの方法を考えてやってみるのがいいと思いますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!