タグ

2013年11月25日のブックマーク (12件)

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

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

    Javaで文字列の暗号化/複合化(※外部ライブラリを使わずに) - on the center line.
  • OAuthの認証にWebViewを使うのはやめよう

    AndroidからTwitterへアクセスするためのライブラリとして,Twitter4Jが有名です. これを使ってみようと,「Android Twitter4J」と検索すると 認証にWebViewを使った例がたくさん出てきます. ・・・いや,ちょっとまて. それはちょっとまずいだろう. そういうわけでもうちょっと賢い方法を探してみました. 何がまずいのさ 「Android Twitter4J」と検索すると,上位にこんなページが出てきます. Twitter4jを使ってOAuth認証をアプリ内で行う方法 Twitter4j-2.2.xを使ったOAuth認証のコーディング例 twitter4jでツイートする Android+Twitter4JでOAuthするためのソースコード 上のサイトでは次の様は方法をとっています. アプリ内にWebViewを貼り付け WebViewでTwitterの認証画面

  • Basic認証・Digestアクセス認証の実装

    はじめに 『Javaによる簡易HTTPサーバーの作成』第2回目の今回は、RFC2617で規定されているHTTPのBasic認証およびDigestアクセス認証を、前回作成したHTTPサーバーに実装します。 記事では HTTPの認証の仕組み NullObjectパターンの利用 Javaでメッセージダイジェストを利用する方法 デファクトスタンダードと仕様の齟齬(そご)の実例 といったトピックを取り上げます。 対象読者 記事は、Javaプログラミングの初級者から中級者を対象に、J2SEのメッセージダイジェストの利用方法や、NullObjectデザインパターンの利用などについて解説します。 また、HTTPの認証機構や、RFCと現実の実装の差などの、コンピューティングの周辺知識についても簡単に説明します。 必要な環境 記事のソースをビルド/実行するには、J2SE 1.4以上を利用してください。ソ

    Basic認証・Digestアクセス認証の実装
  • Androidで安全にパスワードを保存する(4)|TechRacho by BPS株式会社

    前回は、暗号化の方法について紹介しました。 しかし、元に戻せる方法で保存する以上、何かしらの共通鍵を保持しておく必要があります。 単純にアプリ内の定数として保持しておくと、リバースエンジニアリングに非常に弱いので、多少の工夫が欲しいところです。 ところで、タイトルには反しますが、アプリ内で元に戻せる形でパスワードを保存する以上、当に安全な方法は存在しません。 簡易的な対策を組み合わせることで、ちょっとした用途なら必要十分なセキュリティを確保するのが目的です。 先に、APKのリバースエンジニアリング方法を簡単にご紹介しておきましょう。 リソース、マニフェスト apktoolが便利です。 インストールしたら、適当なAPKファイルのあるところで apktool d myapp.apk すれば、フォルダに展開されます。リソースやマニフェストは完全に見放題。 ソースコード まず、apkの拡張子を.

    Androidで安全にパスワードを保存する(4)|TechRacho by BPS株式会社
  • http://www.favorite-labo.org/view/350

  • 49. 可逆暗号のススメ

    みなさんは暗号化を行う場合、どのようにしているでしょうか。md5によるハッ シュを使用してしまうと、元の文字列を取得することは難しくなってしまいま す。今回は暗号化を行っても復号することのできる、可逆暗号を実現するための PEAR::Crypt_Blowfishを紹介します。 暗号化にはPEAR::Crypt_BlowfishはBlowfishという暗号方式を使用します。 Blowfishを考案した同じ人が作成したTwofishという暗号方式は、DESの後継とな る暗号方式を決定する際に最終候補まで残った優れた暗号方式です。暗号化アル ゴリズムはBlowfishとTwofishでは、ほとんど同じなので暗号強度について問題 はないと言えるでしょう。ただ、暗号化アルゴリズムを問題にするような場合は (あまりないとは思いますが)、AESを使用したほうが無難でしょう。なお、こ こで出てきたBlow

    49. 可逆暗号のススメ
  • テキストを可逆的な暗号化する Crypt_Blowfish - [サンプルコード/PHP] ぺんたん info

    暗号化キーを使って、テキストを暗号化&複合化するPEARです。 [参考記事] ブロック暗号とは [参考記事] PHPで暗号化・複合化を行う ブロック暗号 Crypt_Blowfish インストール pear install Crypt_Blowfish PEARに追加インストールできない場合には、インクルードパスの追加で対応できます。 set_include_path( realpath(dirname(__FILE__) .DIRECTORY_SEPARATOR.'vendor' .DIRECTORY_SEPARATOR) . PATH_SEPARATOR . get_include_path()); Crypt_Blowfishには、mcryptが必要です。 libmcryptをインストールし、configureオプションに「--with-mcrypt」を付ける必要があります。 また、

  • javaでBlowfishを使う - 技術メモと日常のあれこれ

    仕事で暗号化を使う必要があったので やった事をメモ まず、Blowfishで暗号化する為に最初に決めないといけない事は 暗号化方式(CBC or EBC) パディング方式 IV(初期ベクトル) を決める事 暗号化方式 CBCとEBCというものがあるらしい。 ECB 初期ベクトルが固定で同じ文字を同じキーで暗号化した場合は同じ結果になる CBC 暗号化する時に初期ベクトルがランダムで設定されるらしい 同じ文字を同じキーで暗号化しても毎回異なる結果になる 複合化する為には初期ベクトルが必要になる ※初期ベクトルについては後で書きます パッディング方式 Blowfishでの暗号化は8byte単位でされるので、足りない場合は文字埋めされる その方式がいろいろあるようなのでそれをここで指定する PKCS5Padding というのが主流らしい。 Javaのドキュメントもそうなっていたのでそうなんだろう

    javaでBlowfishを使う - 技術メモと日常のあれこれ
  • 異なる言語間での暗号化と復号 - ぱせらんメモ

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

    異なる言語間での暗号化と復号 - ぱせらんメモ
  • [暗号化]ブロック暗号とは(AES/DES/Blowfish PKCS5Padding ECB/CBC IV) - [技術資料 + 技術資料] ぺんたん info

    ブロック暗号とは共通鍵暗号の一種で、ブロックと呼ばれる固定長のデータ単位で暗号化を行います。 (ビット単位やバイト単位で暗号化をするものはストリーム暗号です。) [参考記事] PHPで暗号化・複合化を行う ブロック暗号 [参考記事] Javaで暗号化・複合化を行う ブロック暗号 [参考記事] Perlで暗号化・複合化を行う ブロック暗号 [参考記事] Rubyで暗号化・複合化を行う ブロック暗号 平文データ(生データ)から暗号化されたデータを作成することを暗号化(encryption、encrypt)、暗号化されたデータから元の平文データに戻すことを復号(decryption、decrypt)といいます。 プログラム言語の暗号化ではencryptやdecryptなどの関数名・メソッド名になっていることが多いです。 もちろん元に戻せる(可逆変換)ことが前提で、md5やshaなどはハッシュ化と

  • 日々是妄想 : パスワードは暗号化しなさいよ

    2008年05月09日00:00 カテゴリWeb・PC・携帯の話 パスワードは暗号化しなさいよ ブログネタ:WEB作成 に参加中! サウンドハウスの個人情報流出事件がようやく沈静化したっぽい。 一応、音屋からは「お客様(俺)の個人情報は流出していません」 というメールが来たけど、それが100%信用出来るかというと、 正直微妙なフシもある。 でも、この騒動により、音屋の社長は相当キツく吊し上げられ、 これによって彼もセキュリティー確保の重要性を充分に思い知 らされたと思うので、「これからはマジで気を付けろよ」と いう所で、自分的には手打ちにしたいと思う。 まぁ、相変わらず2ちゃんのDTM板では、音屋スレで粘着に 糾弾してる輩がいるけど、あそこまでしつこいと、元々音屋に 私怨がある人か、商売敵の仕業じゃないかと邪推してしまう。 もしかしたら、流出されてカードの再発行を余儀なくされた人や、 カー

  • 日々是妄想 : 初期化ベクトルってなに?(解決編)

    2012年03月08日21:52 カテゴリWeb・PC・携帯の話 初期化ベクトルってなに?(解決編) 仕事中にこのブログのアクセスログをチラ見していたら、、あれ?このIPってウチの会社のじゃん。 俺のアクセスか? いや、心当たりはない。 ふむ、、パスワード暗号化の記事を読んでるのか、、 ↓ ■ 日々是妄想:パスワードは暗号化しなさいよ http://blog.livedoor.jp/katz_stlips/archives/51410853.html って事は、我が部下のSくんだな。 てか、こんな駄文を部下に読まれるのはちょっと恥ずかしい(照 照れ隠しの気持ちもあって、思わずSくんに声を掛けた。 「Blowfishの暗号化について、なにかわかんない事ある?」 するとSくんは「えっ?」という顔をして俺を見返した。 どうやらSくんはこのブログが俺のだということに全く気付いていなかったらしく、墓