2013-01-19 8 views
5

私は今Javaプロジェクトに取り組んできましたが、公開前に公開する前に、MySQLデータベースに接続する機能を追加したいと思います。私の質問は簡単です:コードがオープンソースの場合、データベースにパスワードを隠すにはどうすればいいですか?オープンソースコードで文字列を隠す?

+0

なくMySQLインスタンス彼らはセットアップ自体が?これはどんな種類の機能であるかについての詳細を教えていただけますか?可能な代替ソリューションは、消費者がデータベースサーバーを誰にも公開させることなく、接続して制御できる安らかなWebサービスを支えることでしょうか? – Charlie

答えて

4

データベース接続の設定をコードとは別に保存します。

+0

どのように私は正確に読むことができないフォーマットでそれを保存するだろうか? – caseif

+1

アプリケーションの構成をコードから切り離します。ユーザーがファイルをデプロイするときに、構成を提供するようにします。あなたはそのような難読化の不名誉を引く必要はありません。 –

+0

のように、ユーザーに別のファイルをインポートさせますか?可能であれば、全体を1つのファイルに保存することをお勧めします。 – caseif

1

iniファイルのように、パスワードをconfiguration fileのようなものにすることができます。セットアップ/インストールの段階で、ユーザーからパスワードを取得し、コードで設定ファイルに入力するか、手動でパスワードを入力できるようにします。

+1

私はまったくフォローしていません... 私のコードはスタンドアロンのJARだと言いました。 – caseif

1

私が知る限り、正解はありません。難読化または隠蔽するのは本当に難しいことですが、パスワードまたはそれを計算する方法がJARにある場合、永続的で熟練したユーザーがそれを見つけるでしょう。

はるかに良い私はここに与えることができるよりも、答えがあります:あなたはあなたのコードのユーザーは、データベース・サーバーに直接接続したい How can I protect MySQL username and password from decompiling?

+0

私は少し混乱しています。コード 'preferences.put(" db_username "、username)を使用した場合、 preferences.put( "db_password"、password); '、 この資格情報はまだバイナリにハードコードされていませんか? – caseif

関連する問題