CodeBook.phpが内部的に使用しているphp-mcryptは、PHP 7.1.0 で 非推奨 となり、 PHP 7.2.0 で削除されました。 コメントと更新履歴はCode Book Archive - ゼロと無限の間のログへどうぞ。 PHPはphp-mcryptさえあればいろんな暗号アルゴリズムを使えるけど、いざやろうとすると意外に面倒。特に、Javaなど他のアプリやツールとやり取りするときとか。 IVやパディングについて考えるのは大したことではないと言えばそれまでだが、毎回チョコチョコ書くのはちょっと手間。パディングがPKCS#5の場合なんか特に。 なので手軽に暗号化と復号ができるクラスを作った。(要php-mcrypt。) クラス名はサイモン・シンの力作、暗号解読にちなんで。 この本によれば、PHPによる暗号化はCODEではなくCIPHERだそうだけれど。 <?php req
【2009/01/27 追記】 このエントリは間違っているので、次のエントリも併せてご覧ください。 [PHP]パスワードのハッシュ化にはcrypt を使ってはいけない パスワードをDBに保管するとき、プレーンテキストのままじゃダメってのはもういいよね。 (参考)ブログが続かないわけ | パスワードを平文で管理するのはダメだ で、そのときどうやってハッシュ化するかというお話。 まず、大前提として復号可能な暗号は避けた方がいい。パスワードを復号しなければならないというシーンはほとんどないので、それであれば復号できない方がセキュリティ上安全だからだ。復号できない方式でハッシュ化すれば、もう、誰にもパスワードはわからない状態になるからね。 やり方としてありがちなのはMD5 によるハッシュ化 $pass = 'my password'; $pass_hash = md5($password); //
スパイスラボ神部です。 ちょっとわけあって、PHP で複合化可能な暗号化を処理を組み込むことになりました。いったん暗号化して DB に格納し、あとで複合化するという手順です。 さすがに生でパスワードを格納するのは嫌ですし、調べてみると意外と全体の流れを解説したものはあまり多くはなかったもよう。せっかくですのでスタンダードな暗号化/複合化についてまとめてみたいと思います。 -暗号化が好きだ! - Favorites! 順を追ってあたりをつけていきます けっこう情報が少ないので、順を追って調べていきます。 -PHPの可逆暗号化関数について - 教えて!goo とりあえず、mcrypt 系を使うのがよさそうだ、というヒントが得られました。 -PHP: mcrypt_generic - Manual まずは上から mcrypt_cbc がいいかな?と思ってみてみると、mcrypt_generi
30分プログラム、その382。Pythonでカエサル暗号。 The Zen of Pythonをローカライズしたらおもしろいかも あれ、カエサル暗号で暗号化されてるんだよなぁ 元コードはa-zにしか対応してないなぁ よし、Unicode対応のカエサル暗号を作ろう という理由で作ってみた。 使い方 >>> enc = Encoder(3) >>> enc.encode(u'abc') u'def' >>> enc.encode(u'あいう') u'ぅぇぉ' ソースコード #! /usr/bin/python # -*- mode:python; coding:utf-8 -*- # # 2008-10-05-204214.py - # # Copyright(C) 2008 by mzp # Author: MIZUNO Hiroki / mzpppp at gmail dot com #
何かの理由があって、PHPで送出データを暗号化したい場合の方法。 1.mcrypt関係のライブラリを入れる とりあえずmcryptを使うことを想定。 必要なライブラリを入れます。 以下はyumが使える場合。 >yum install libmcrypt-devel >yum install php-mcrypt 2.送出側の暗号化 送出側のデータを暗号化します。 基本的にはこのデータを$cipherの値を送出することを前提にしているので、Form等から値を受取る場合は、一端加工する必要があると思います。 //暗号キーを指定 $key = “cipher key” ; $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM); // 事前処理
みなさんは暗号化を行う場合、どのようにしているでしょうか。md5によるハッ シュを使用してしまうと、元の文字列を取得することは難しくなってしまいま す。今回は暗号化を行っても復号することのできる、可逆暗号を実現するための PEAR::Crypt_Blowfishを紹介します。 暗号化にはPEAR::Crypt_BlowfishはBlowfishという暗号方式を使用します。 Blowfishを考案した同じ人が作成したTwofishという暗号方式は、DESの後継とな る暗号方式を決定する際に最終候補まで残った優れた暗号方式です。暗号化アル ゴリズムはBlowfishとTwofishでは、ほとんど同じなので暗号強度について問題 はないと言えるでしょう。ただ、暗号化アルゴリズムを問題にするような場合は (あまりないとは思いますが)、AESを使用したほうが無難でしょう。なお、こ こで出てきたBlow
mcrypt関数で暗号化したデータをjavascriptで復号化(またはその逆)したいのですが、うまくできず困っています。 テストで使用しているPHPのコードは以下のようなものです。 $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC), MCRYPT_RAND); $text = "123 456 789 0123"; // 暗号化するテキスト $key = "key"; $encrypted = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $text, MCRYPT_MODE_CBC, $iv); $encoded = base64_encode($encrypted); print $encoded."\n"; // 符号化済みのテキスト // ここから復
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く