人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

プログラムコードの中のパスワード等のハードコードについて
プログラミング作法について教えて下さい.
独学で勉強中なのですが,cronで定期的にwebサービス等にログインしてゴニョゴニョしたいのですが,プログラムコードの中にアカウントのパスワード等ハードコードをするのは気が引けます.
皆様はどういった方法で処理しているのでしょうか?お教え下さい.

●質問者: giva_0311
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● lang_and_engine

MD5とか,ハッシュ関数で暗号化してコーディングすればOKです。
手軽に実現したいのであれば,暗号化されたパスワードをソースコード中に埋め込む場合もあります(PHPのPukiWikiみたいに)
たくさんのパスワードを格納する場合は,暗号化したパスワードをデータベース中に保管しておいて,DBに接続しないかぎりパスワードが見えないように工夫します。


giva_0311さんのコメント
回答ありがとうございます. なるほどやはり暗号化したほうがいいのですね.

2 ● practicalscheme
ベストアンサー

プログラム起動時に設定ファイルを読み込むようにして、その設定ファイルの中にパスワードやAPI keyを書けるようにする、ということを良くやります。ソース自体はgithubなど公開の場に出すことも多いので。公開ソースにはダミーのサンプル設定ファイルを含めておいて、自分が実際に使うものはローカルで自分だけが読めるようにして管理しておきます。

設定ファイルが取られたらパスワードが漏れちゃいますが、そもそも自分の手元だけにあるはずの設定ファイルが読み取られる状況ならsshの秘密鍵だって取られちゃう状況なので気にしても意味がないでしょう。

暗号化してプログラム内に書いておくというのは疑問です。外部サービスにログインするためのパスワードならプログラム内で復号してるわけですから、プログラムソースを手にした人は誰でも簡単に元のパスワードに戻せます。ソースを絶対に外に出さない、という自信があるなら平文で書いておいても一緒です。


giva_0311さんのコメント
回答ありがとうございます. 確かに読み取られる状況でしたら暗号化しても意味はありませんね. 例えば,クラウドストレージにはプログラミング本体のみ同期して設定ファイルは手元で管理とゆうのが現実的なのかもしれませんね.

3 ● 無頼庵

回答No.2の方が言うように、設定ファイルが良いでしょう。

プログラム作方についてとのことですが、要件によってプログラムの作り方は変ります。

回答No.1の方はプライベートで使用する場合とサービスで使用する場合を言っていますね。

しかし、値をハードコードにするのは薦めません。

コンピュータは、束縛からの開放によって発展してきたのですから、自由度を確保することが価値に繋がります。


giva_0311さんのコメント
回答ありがとうございます. >コンピュータは、束縛からの開放によって発展してきたのですから、自由度を確保することが価値に繋がります。 肝に銘じます.
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ