タグ

関連タグで絞り込む (3)

タグの絞り込みを解除

javaと暗号化に関するdoogieのブックマーク (6)

  • Java「AES暗号」メモ(Hishidama's AES Sample)

    AESによる暗号化・復号化 Javaには、Cipherという暗号化・復号化を行うクラスが用意されている。 DESとか色々な種類の暗号をこのクラスによって使うことが出来る。 AESは JDK1.4.1ではサポートされていないが、JDK1.4.2ではサポートされている。 JDK1.5でもサポートされているが、128bit以外は使えないっぽい。 JDK1.6ではjce_policyを更新すれば使える。[2008-08-15] 単純な例 秘密鍵(暗号化・復号化で同じものを使う)をバイト列で用意して使う例。 import java.security.AlgorithmParameters; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.cryp

  • Javaで共通鍵暗号方式「AES」を使用した暗号化と復号化

    「AES」とは、アメリカ合衆国の旧国家暗号規格であった「DES」が安全性の低下により、後続として公募され、採用された新暗号化規格らしい。 その「AES」は、「ブロック暗号」という共通鍵暗号方式の一種みたい。 「ブロック暗号」とは、平文をブロックという固定長の単位に分割し、暗号化していくという方式らしい。 さて、難しいことはそっと横に置いといて、「AES」をJavaで実装してみた。 メインメソッド まずはメインメソッド。 コマンドライン引数を暗号化メソッド、復号化メソッドに渡してやる。 また、暗号化キーと初期化ベクトルを固定値で用意した。 今回使用する「暗号利用モード(ブロック処理の種類)」は「CBC」というものを指定するのだが、これはブロックの暗号化を行う際に、前のブロックの暗号化した結果を利用し、暗号化するというもの。 一番初めのブロックに対しては、前のブロックがないので、「初期化ベクト

    Javaで共通鍵暗号方式「AES」を使用した暗号化と復号化
  • 異なる言語間での暗号化と復号 - ぱせらんメモ

    仕事でデータを暗号化して保存する必要が出てきたので色々調べてみた。 メインのシステムはPHPで作っているんだけど、Javaなども絡んでくるので、お互いが処理できる暗号方式でなければいけない。 仕様さえ明確にしてあればオレオレアルゴリズムでもいいんだけど、今回はかなり重要なデータを扱うので世間でそれなりに使われている暗号方式を使うことにした。 暗号の種類 自分も暗号にそんな詳しいわけではないけど、「データをパスワードで暗号化するんでしょ?」ぐらいにしか思ってない人はきっと大変な思いをする。 今の話で登場するのは 暗号化したいデータ 暗号の種類(アルゴリズム) パスワード(暗号処理に使うキー) の3つだけど、これからやろうとしてるブロック暗号では 暗号化したいデータ 暗号の種類(アルゴリズム) 暗号処理に使うキー(パスワードというかバイト列) 暗号利用モード(ブロック処理の種類) 初期化ベクト

    異なる言語間での暗号化と復号 - ぱせらんメモ
  • はなとゆめ - JavaとPHPで暗号化したり復号化したりで相互運用(AES/ECB)

    はなとゆめのフィットネス 体重  目標 60.0[kg] 体脂肪率  目標 12.0[%] BMI  目標 20.0[kg/m2] ショップリンク パソコン修理ならお直し隊にお任せ! 関東圏内の引っ越しはカルガモ引越センターが安くて良かったですよ タイヤ 人気ランキング1位の電子タバコのことなら電子たばこ通販インデックス 通信経路上の安全を確保する必要があって、ローカルで文字列を暗号化、 サーバーに転送し復号したりなんかする必要があったのですが、 最近はAESとかいうのだそうでちょっとやってみました。 アルゴリズムを常に固定にする方式をECB、毎回変える方式をCBCと呼ぶそうですが、 ECBの場合は同じものを暗号化すると毎回同じ形になるので、 仮に盗まれた場合、そのまま使われる危険性があることに注意します。 Javaで暗号化/復号化してBa

  • Javaで文字列の暗号化/複合化(※外部ライブラリを使わずに) - on the center line.

    僕がいま係っているシステムで、別システムのログインパスワードを文字列でデータベースに格納することになりました。これを実現するために、Javaで文字列の暗号化/復合化を行う方法を調べたので、その結果を記しておきます。(※既に別の方々が解説している内容をまとめただけですが。) まず、大きく以下の工程にわけて考えます。 文字列を暗号化する(バイト配列を得る) 暗号化されたバイト配列を文字列化する(暗号化文字列を得る) 暗号化された文字列をバイト配列化する(暗号化バイト配列を得る) バイト配列を復号化する(文字列を得る) 「1. 文字列を暗号化する(バイト配列を得る)」 Java Tips:手軽に暗号化・復号化するには? このページにばっちり解説してあるとおりです。 import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec

    Javaで文字列の暗号化/複合化(※外部ライブラリを使わずに) - on the center line.
  • SMD5の実装 - tanihito’s blog

    パスワードを平文で保存するのは危険であり、MD5などでパスワードをハッシュ化した値を持っておくのが一般的です。しかしMD5を使った場合、一般的なパスワードでは辞書攻撃で解読されてしまいます。例えば、「5f4dcc3b5aa765d61d8327deb882cf99」というハッシュ値をmd5.rednoize.comで検索すると、ハッシュ前のパスワードである「password」が分かります。 そこでSMD5 (Salted MD5) が登場してきます。SMD5とは「パスワード+ソルト(ランダムな文字列)」からMD5を使ってハッシュ値を計算する方法です。パスワードごとに別のソルトを用いることで辞書作成を難しくして、辞書攻撃を防ぐことができます。 SMD5をJavaで実装したところ、以下のような結果になりました。変換の1回目と2回目でハッシュ値が異なることが分かります。 実行結果 変換前:706

    SMD5の実装 - tanihito’s blog
  • 1