プログラムをバイナリエディタで見たら・・・?

解決


m  2005-06-03 16:36:43  No: 90218  IP: [192.*.*.*]

プログラムのコードにパスワードを直接書いたプログラムをコンパイルして、EXEを作ります。作ったプログラムをバイナリエディタ等でみるとそのままパスワードが丸見えになってしまいます。
プログラムのコード中にパスワードを指定する必要がある場合などはどのようにすればいいでしょうか?

編集 削除
魔界の仮面弁士  2005-06-03 17:33:35  No: 90219  IP: [192.*.*.*]

バイナリエディタでexeを見る……という事は、VB6かな?
VB.NETなら、ildasm や Reflector等で見るでしょうから。

で、VB6の場合の対応策としては:

バイナリにパスワードが平文で埋め込まれていなければよいなら
  →「S = "Pass"」ではなく、たとえばChr関数等を用いて、
    「S = Chr(&H50) & Chr(&H61) & String(2, &H73)」のようにする

一致性のチェックに使うパスワードの場合であれば
  →不可逆暗号化しておく。(MD5等)

SQL Serverへの接続に使うパスワードの場合なら
  →SQL Server認証ではなく、Windows認証を採用する。

その他、可逆暗号を含めなければならない場合には
  →Crypt APIを試してみる。

編集 削除
m  2005-06-03 17:36:59  No: 90220  IP: [192.*.*.*]

>バイナリにパスワードが平文で埋め込まれていなければよいなら
>  →「S = "Pass"」ではなく、たとえばChr関数等を用いて、
>    「S = Chr(&H50) & Chr(&H61) & String(2, &H73)」のようにする
暗号化などは面倒なので、上記の方法でやってみたいと思います。
ありがとうございました。

編集 削除
medaka  2005-06-04 11:27:14  No: 90221  IP: [192.*.*.*]

VB.NETでもDBの接続文字列とかstringでそのまま持つと
バイナリエディタで見るとそのまま見えます
のでTripleDESCryptoServiceProviderで暗号化した文字列を持たせて
プログラム内で複号化しています

編集 削除