LoginSignup
3
3

More than 5 years have passed since last update.

Golangの暗号化パッケージのベンチマーク

Last updated at Posted at 2017-01-02

暗号化パッケージのベンチマーク

データをハッシュ化して、同一性の確認のためだけに使う目的で暗号化パッケージを使うことになり、パスワードや個人情報などとは違い。解読されても問題がなく、単純に早さだけを知りたかったので、色々な暗号化パッケージでスピードテストをしてみました。

暗号形式

  • scrypt
  • bcrypt
  • sha256
  • sha512
  • sha3-256s
  • Ripemd
  • MD5

結論

MD5とsha256が安定して速い。
ただ、MD5は脆弱性が発見されて、推奨されていない暗号形式なので、解読されるとまずいデータには使わない方がいいです。
APOPのぜい弱性で見えてきたMD5の「ご臨終」

テスト結果

ベンチマークのコードを一応貼っておきます。
tikasan/encryptionBenchmark

1st time

  • scrypt: 73.621115ms
  • bcrypt: 52.998518ms
  • sha256: 3.253µs
  • sha512: 4.276µs
  • sha3-256: 5.999µs
  • Ripemd: 5.323µs
  • MD5: 2.669µs

2nd time

  • scrypt: 74.315378ms
  • bcrypt: 51.524798ms
  • sha256: 2.514µs
  • sha512: 2.339µs
  • sha3-256: 7.625µs
  • Ripemd: 9.218µs
  • MD5: 2.625µs

3rd time

  • scrypt: 79.316009ms
  • bcrypt: 50.530978ms
  • sha256: 2.305µs
  • sha512: 3.291µs
  • sha3-256: 8.048µs
  • Ripemd: 4.314µs
  • MD5: 3.104µs

4th time

  • scrypt: 73.314786ms
  • bcrypt: 49.949264ms
  • sha256: 2.296µs
  • sha512: 3.083µs
  • sha3-256: 7.453µs
  • Ripemd: 8.307µs
  • MD5: 1.775µs

5th time

  • scrypt: 77.01785ms
  • bcrypt: 50.199802ms
  • sha256: 3.272µs
  • sha512: 3.321µs
  • sha3-256: 6.446µs
  • Ripemd: 3.99µs
  • MD5: 2.759µs
3
3
0

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
3
3