オーダーメイドコース
icon
icon

Rubyのソースコードを暗号化する方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyのソースコードを暗号化する方法を現役エンジニアが解説しています。今回はpitというアカウント管理ライブラリとyamlファイルを使ってソースコードの一部を置き換える方法についてみていきたいと思います。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Rubyのソースコードを暗号化する方法について解説します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

ソースコードを暗号化する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

Rubyのソースコードを暗号化するには

ソースコードの中に生のアカウント名やパスワードを記述するのは、第三者から悪用される危険がありセキュリティ上問題です。

そこで今回はpitを使用してパスワードやトークンをyamlファイルに記載して、直接書かなくても済むやり方を解説します。

pitで暗号化する方法

まずは、pitをターミナルで以下のコマンドを使用してインストールします。

gem install pit

 

そしてpitを使用するファイルの中で

require 'pit'

 

を書くことで、pitを使用できる様にします。pitは、setメソッドでyamlファイルの書き込みを行います。~/.pit/default.yamlに保存されます。また、データの呼び出しをする際は、getメソッドを使用します。hashで取得できます。

[PR] 未経験からWebエンジニアを目指す方法とは

実際に書いてみよう

それでは、実際にpitを使用して、情報の書き込みと呼び出しを行ってみましょう。

# pitを読み込みます
require 'pit'

# pitのset
Pit.set(
    # getする際にキーとなる名前をセットする
    "twitter.com",
    # data以下でここの値をセット
    data:{
        #keyをname,valueを"username"でセット
        name: "username",
        pass:"password",
        }
     )

# getで上でセットした値を取得。返り値はhashになっている
twitter_account =  Pit.get("twitter.com")

#usernameが出力
puts twitter_account[:name]
# passwordが出力
puts twitter_account[:pass]

 

実行結果は以下の通りです。

username
password

また、yamlファイルが書き込まれているので
ターミナルで以下のコマンドを実行することでも確認できます。

 

 cat ~/.pit/default.yaml

 

実行結果は以下の通りです。

twitter.com:
  :name: username
  :pass: password

 

yamlファイルは暗号化されていないので、このファイルがユーザーからアクセスできない様に注意しましょう。

以上で、解説を終わります。

 

筆者プロフィール

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。