Techioz Blog

機密情報を保管する

概要

何を求めているのかよくわかりませんが、ご容赦ください。

このような Ruby シナリオで実装するにはどうすればよいですか:

ユーザーは何らかの機密情報を持っています。 { トークン: “blabla”、メール: “[email protected]”} ここで、ユーザーは何らかの手順を使用してデータを暗号化し、サーバー/データベースにアップロードする必要があります。

現在、Web アプリケーションはその情報を使用して別のアプリに接続し、そのデータを使用するためにデータを復号化できる必要があるため、おそらくアプリは情報を復号化するために何らかの 2 番目のキーを持っている必要があります。

これについて明確かどうかわかりませんが、何か質問があれば質問してください。ご提案や情報をありがとうございます。

問題を解決するために使用するコード/ヒント/追加情報/ツールを期待しています。

解決策

さまざまなアプローチを適応させることができます。たとえば、これは役立つかもしれません。 このようにして、秘密キーのようなトークン/キーをアプリケーション レベルに設定できます。これは暗号化と復号化に使用されます。

token = ActiveRecord::Encryption.encryptor.encrypt('something here to encrypt as a salt, etc.')
Base64.encode64(ActiveRecord::Encryption.encryptor.encrypt("#{token}@YOUCANPUTMORESTRONGKEYHERE@#{email-or-token-or-what-ever}"))

復号化用

decoded_token = ActiveRecord::Encryption.encryptor.decrypt(
    Base64.decode64(params[:token])
  )

  encoded_token, email_or_token = decoded_token.split('@TOKEN@')