タグ

ブックマーク / nori3tsu.hatenablog.com (1)

  • Javaの標準AES暗号化アルゴリズム互換のRuby(Python)実装 - nori3tsu's blog

    随分前に悩んだことでまた悩んでしまったのでメモ。 Java/Python/Rubyのそれぞれの実装をまとめました。 Javaで"AES"と指定して暗号化/復号したデータをRubyで復元する際、 AESの知識が乏しいせいでRubyでどうやって復元すれば良いのかわからず困ってしまったため、 次回から悩まないためにJavaの標準AESアルゴリズムと互換性のあるRubyの実装書いてみました。 ついでに最近少し触っているPythonでも書いてみました。 AESはブロック暗号です。 ブロック暗号についてはコチラが詳しいです。 Javajavax.crypto.Cipherクラスで単純に"AES"として暗号化すると"AES/ECB/PKCS5Padding"という形式になります。 鍵長: 128bit 暗号モード: ECB パディング方式: PKCS5Padding 暗号モードのECBはある文字列を暗

    Javaの標準AES暗号化アルゴリズム互換のRuby(Python)実装 - nori3tsu's blog
    animist
    animist 2018/01/16
    pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
  • 1