LoginSignup
17
2

More than 5 years have passed since last update.

サンタさんも入れないくらいPasswordを堅固に暗号化(所要時間3分)

Posted at

springframework.securityを使って簡単にPasswordを暗号化(所要時間3分)

もうすぐクリスマスですね💫
サンタさんがあなたのお家にやって来る季節でもあります😩💦
でも、、サンタさん以外が侵入して来たら困りますよね➰
戸締まりはしっかりしないといけないですよ。

そう。情報もね。

1. springframework.securityを使って簡単にPasswordを暗号化説明

そんな時におすすめなのはspringframework.securityを使ってAES256で暗号化する方法です !!!
今回はJava8にて実装します。(メリクリ⛄)

そもそもAES256とは...

AES256
別名:256ビットAES,AES-256ビット,AES-256bit,256bitAES
AES256とは、AES(Advanced Encryption Standard)と呼ばれる暗号化方式のうち、256ビット長の暗号鍵を使用する方式のことである。
AESは2000年に、それまでの標準的な暗号化方式であったDES(Data Encryption Standard)に替わる新たな暗号化方式として、
米国の国立標準技術研究所(NIST)によって米国標準規格として導入された。
共通鍵暗号方式で、使用する暗号鍵が128ビット、192ビット、256ビットの3種類ある。
このうち最長の256ビット暗号鍵を使用するAES256は、2013年現在、最も堅固な暗号化方式の一つと言われている。

これさえ使えば破られることのない頑丈な暗号化も夢ではないという訳です。
早速使い方のご紹介!!!

2. 暗号化・復号手順

JavaのSpringプロジェクト立ち上げる !!!

public String encryptText(String secret, String salt, String plainText) {
TextEncryptor encrypt = Encryptors.text(secret, salt);
return encrypt.encrypt(plainText);
}

public String decryptText(String secret, String salt, String cipherText) {
TextEncryptor decrypt = Encryptors.text(secret, salt);
return decrypt.decrypt(cipherText);
}

たったこれだけで最も堅固な暗号化を実装出来ます♪ 🎅 <これじゃ俺も入れないよ〜

  • 説明
    • SaltとSecretは暗号化と復号する際に同じものを使います。

3. AES-256の規制対処法

先程のコードを使うとExceptionで落ちてしまいます。
Javaが標準で制約しているbit数が128bitらしい。
なので、SpringSecurityにてAESの鍵長256ビットを扱うためには、強度が無制限のJCE管轄ポリシーファイルを適用する必要がある。US_export_policy.jar」と「local_policy.jar」をJava.homeにて上書きしなければならないらしいです。
コチラの記事を参考にどうぞJavaでAES256を使用できるようにする

4. おしまいに

最近実装されたJava9にてポリシーファイルの設定をしなくてよくなったとかなんとか。

17
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
2