本日紹介するのは以下5項目 対称暗号(共通鍵暗号) 公開鍵暗号 一方向ハッシュ関数 デジタル署名 証明書 対称暗号(共通鍵暗号) 一つの鍵で暗号化し、同じ鍵で復号化する require 'openssl' # 暗号化したいデータを用意 data = '*secret data*' # 32byte共有鍵、16byte初期化ベクトルを暗号アルゴリズムが求める長さで適当に用意する key = 'a' * 32 iv = 'i' * 16 # 暗号化 enc = OpenSSL::Cipher.new('AES-256-CBC') enc.encrypt enc.key = key enc.iv = iv encrypted_data = enc.update(data) + enc.final # 復号化 dec = OpenSSL::Cipher.new('AES-256-CBC') dec
Rails では特に (config/initializers/session_store.rb などで) 設定しない場合、セッションの情報をクライアントの Cookie に直接、(事実上) 平文で保存する。 実際に見てみよう。 $ rails new todo $ cd todo $ rails g scaffold tasks name $ rake db:migrate $ rails s # app/controllers/application_controller.rb class ApplicationController < ActionController::Base protect_from_forgery before_filter do # アクセスした日時を session に保存 session[:last_accessed_at] = Time.now end
【追記】暗号化→認証コード生成に修正 2009/08/29 ハッシュ関数を用いて「秘密鍵」と「認証すべき任意長のメッセージ」から暗号認証コード(MAC値)を生成する。HMACの詳細はHMAC(by Wiki)で。 まずはこの記事から引用(一部改変) import javax.crypto.*; import org.apache.commons.codec.binary.Hex; public class hmacsha1 { public static void main(String[] args) throws Exception { KeyGenerator kg = KeyGenerator.getInstance("HmacSHA1"); SecretKey sk = kg.generateKey(); // skが秘密鍵 Mac mac = Mac.getInstance("
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く