hmacとハッシュ化と暗号化について

hmacとハッシュ化と暗号化について

プライベートAPIを作成するにあたり、トークンの暗号化とかハッシュ化とかが必要になります。

hmacについては全然知らなかったので調べました。

hmacはKeyed-Hashing for Message Authentication codeの略です。本当の正式名称は知りません。

項目 特徴
ハッシュ化 元に戻せない。ハッシュ関数はMD5やSHA1,SHA256など
暗号化 元に戻せる

ハッシュ化と暗号化はこの違いがあります。

ハッシュ化とは不可逆の為、一度ハッシュ化してしまうと元に戻せません。これに対して暗号化は元に戻すことができます。これを復号化と言います。

HMAC認証とは

HMAC認証という認証方式がありますが「HMAC-SHA256」や「HMAC-SHA512」を使ってハッシュ化を行います。秘密鍵を共有する2者間(クライアントとサーバ間とか)で秘密鍵を共有し、APIキーをもって2者間でともにハッシュ化を行い、そのハッシュ値が同一であるかどうかで認証を行います。

同一であれば、内容が改竄されていないこと(完全性)が保証されます。

nodejsでcryptoモジュールを使用して確認します。

以下ソースは、createHashメソッドを使用してSHA512のhashオブジェクトを生成しています。

index.js

ハッシュ化と暗号化は違う。ハッシュ化(SHA1,MD5)すると、元には戻らない

一方向ハッシュ関数についてまとめてみた。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA