アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB.NET(VS2010)で開発しています。
パスワードを暗号化して保存したいのですがいまいち方法が
わかりません。
当たり前ですがパスワードは任意で変更可能です。
それを暗号化して保存、そして次回からは変更されたパスワードを使ってDBへログイン。
暗号化したもの単体で複号出来ないと困ります。

なるべくiniファイルではなくVS2010やVS2008の機能(リソース?)で実装したいです。

よろしくお願いします。

A 回答 (4件)

>もしDBのパスワードそのものを暗号化したものにしてしまえばいいと言う


>事ならば結局暗号化した文字列を知っていれば誰でもログオン出来てしまいませんか?
具体的にはどうやってログオン出来ると言っていますか?

画面から暗号化した文字列を入力しても、その文字列をもとに暗号化する処理が
入るからそのままでは無理だと思いますが?

この回答への補足

ということはやっぱり復号化(というか普通にパスワードを入力するイメージ)
しておかなければなりませんね。

こちらの状況を説明しますと、
運用サイドの管理者だけがID・パスワードの設定が出来る。(アプリケーションに登録出来る)
運用サイドの運用者はID・パスワードの設定を意識することなく管理者が設定した情報によって
ログオンできる。
なのでアプリケーション側にパスワードを保存しておく必要がある。
パスワードは暗号化しないまま保存しておくことは出来ない。(あたりまえ)
そのパスワードはデータベースへのログオン用のパスワードだ。
だからアプリケーション側で復号化出来ないとログオンできない。

ご理解頂けたでしょうか?

補足日時:2011/12/27 00:07
    • good
    • 0

> このDBにログオンするためのパスワードを暗号化したいのです。


> なので複合できないとまずいんです。

だから複合化の必要性がないんじゃないの? って話です。
一方通行の暗号化だけできて、元のプレーンテキストに戻す必要あるの?

暗号化だけを行う関数を作っておく。
ユーザーがログオンするときに入力したプレーンテキストを関数で暗号化する。
この暗号化された文字列と、すでに暗号化されて DB に保存されている文字列とを比較すればいいんじゃないの?
利用者が決めた利用者のためだけのパスワードをシステムや開発者やシステム管理者が解読できちゃっていいんですか?

それとも既に誰かのパスワードが暗号化されて保存されていて、それをハッキングしたいってことでしょうか?

で、たぶん話の本流である 「VB.net で文字列を暗号化する方法」 ですが、すでに検索してるかとは思いますが、「VB.NET 暗号化」 でたくさんでてきます。
ついでに 「VB.NET 暗号化 復号化」 でハッキングできるツールの作り方もわかりますね。

この回答への補足

「すでに暗号化されて DB に保存されている文字列」とはログオンした後で参照できるのでは?
ログオンした後ではなくてログオン時のとこです。

もしDBのパスワードそのものを暗号化したものにしてしまえばいいと言う
事ならば結局暗号化した文字列を知っていれば誰でもログオン出来てしまいませんか?

補足日時:2011/12/24 10:09
    • good
    • 0

AES とか、DES という話?

この回答への補足

回答ありがとうございます。

temtecomai2さんにも言いましたがその暗号単体で複合できる
暗号化のやりかたです。

補足日時:2011/12/23 00:14
    • good
    • 0

ふつうは複合化する必要ないでしょ?


システムの機能として、パスワードを忘れたユーザーに 「あなたのパスワードは○○ですよ」 って教える必要があるのなら必要かもしれないけど。

<通常のログオン>
1. 自分で決めたパスワード文字列をユーザーがシステムに入力
2. 入力された文字列をシステムが暗号化 → (a)
3. DB に保存されている暗号化済み文字列と (a) を比較

<パスワード変更→保存>
1. 自分で決めたパスワード文字列をユーザーがシステムに入力
2. 入力された文字列をシステムが暗号化して保存
※ ユーザーは自分で決めたパスワード文字列を知っているが、システムによって暗号化された文字列がなんなのかは知らない。

この回答への補足

回答ありがとうございます。

3. DB に保存されている暗号化済み文字列と (a) を比較

このDBにログオンするためのパスワードを暗号化したいのです。
なので複合できないとまずいんです。

補足日時:2011/12/23 00:09
    • good
    • 0

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