タグ

mcryptに関するk-holyのブックマーク (8)

  • PHP7.2で非推奨になったmcryptの代わりにopensslにやってみた - Qiita

    $cryptor = new OpenSSL_Cryptor('bf-cbc'); $cryptor->crypt_key = 'CryptKey'; $encrypted_human_readable = $cryptor->encrypt('Plain text here'); 復号も同じような感じで $cryptor->decrypt() を呼ぶだけで良いようにしてみた。 というわけでコード。 PKCS5パディングで埋められた文字を取り除く処理のところがちょっと自信がないけど…… 一応、mcryptのときBlowFish/CBC、TripleDES/ECBな暗号化が行われたデータを上手いこと復号することには成功。 他のパターンでも行けるかどうかは分からない。 class OpenSSL_Cryptor { /* @var string 暗号化方式 */ private $crypt_

    PHP7.2で非推奨になったmcryptの代わりにopensslにやってみた - Qiita
  • PHP_versionup/1.1_mcrypt対応.md at master · LancersDevTeam/PHP_versionup · GitHub

    k-holy
    k-holy 2019/05/30
    ありがたい…
  • PHP 7.2で消えるMcryptの扱い - Qiita

    deprecated(非推奨)を放置してませんか? deprecatedにされた関数は、最後は消える運命にあります。 Mcryptも、http://php.net/manual/ja/migration71.deprecated.php のページに書かれているように、非推奨後に削除されることが記載されていました。 mcrypt 拡張モジュールは十年近くにわたって放置されており、極めて使いづらいものです。 そこで、この拡張モジュールを非推奨にしました。かわりに OpenSSL を使いましょう。 mcryptは PHP 7.2 でコアから削除されて、PECL に移る予定です。 10年も放置ということは、 正直言ってPECLに行って使い続けるのも不安です。 この際、思い切って推奨しているOpenSSLに行こうじゃないですか?! Mcryptはいきなり来た そもそも、Mcryptは唐突に廃止のアナ

    PHP 7.2で消えるMcryptの扱い - Qiita
    k-holy
    k-holy 2018/07/06
    DB等で保存している暗号化パスワードがある場合は、取り返しがつかなくなる前に新旧バージョン並行期間を設けて移行するしかないかな…
  • OpenSSLの暗号処理が爆速な件 - Y's note

    OpenSSL―暗号・PKI・SSL/TLSライブラリの詳細― 作者:John Viega,Matt Messier,Pravir Chandra,齋藤 孝道オーム社Amazon 目次 OpenSSLによる暗号 実行環境 OpenSSLによる暗号化速度 ECBとCBCの違い PHP OpenSSLとMcrypt関数のalgorithms比較 OpenSSLとmcrypt関数のDES,AESの速度比較 Mcryptのゼロpaddingの癖 C DES暗号 AES暗号 OpenSSLとMcryptのDES,AESの速度比較 OpenSSLによる暗号 OpenSSL日語サイト: The Open Source toolkit for SSL/TLS あどてくやっている@yutakikuchi_です。 今日はOpenSSLの共通鍵暗号について調査した内容を纏めます。OpenSSLについて特にC言

    OpenSSLの暗号処理が爆速な件 - Y's note
    k-holy
    k-holy 2017/11/22
    PHP7対応のための書き換え案件
  • PHPでお手軽に暗号化、復号する - CodeBook.php [ゼロと無限の間に]

    CodeBook.phpが内部的に使用しているphp-mcryptは、PHP 7.1.0 で 非推奨 となり、 PHP 7.2.0 で削除されました。 コメントと更新履歴はCode Book Archive - ゼロと無限の間のログへどうぞ。 PHPphp-mcryptさえあればいろんな暗号アルゴリズムを使えるけど、いざやろうとすると意外に面倒。特に、Javaなど他のアプリやツールとやり取りするときとか。 IVやパディングについて考えるのは大したことではないと言えばそれまでだが、毎回チョコチョコ書くのはちょっと手間。パディングがPKCS#5の場合なんか特に。 なので手軽に暗号化と復号ができるクラスを作った。(要php-mcrypt。) クラス名はサイモン・シンの力作、暗号解読にちなんで。 このによれば、PHPによる暗号化はCODEではなくCIPHERだそうだけれど。 <?php req

  • 異なる言語間での暗号化と復号 - ぱせらんメモ

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

    異なる言語間での暗号化と復号 - ぱせらんメモ
  • 「PHPで暗号化・復号あれこれ」の続き - Do You PHP はてブロ

    ラボブログの続きですが。。。 mcryptのpaddingは 平文の長さがブロックサイズ倍になるように ASCIIZ('\0')を付けるだけなので, base64化することで末尾のASCIIZを正しく保持する効果があると思われます(試してはいません). 今回挙げたサンプルを作る際、復号データの末尾に何か付加されているのは確認していたのですが、base64_encodeするとうまくいったので、今回はそれ以上深く追っていませんでした。また、コメントにある「padding」を見て、パディングのことをすっかり忘れていたことを思い出しました。 ということで、PEAR::Crypt_Blowfishを使ったサンプルを元に見てみました。以下のコードはラボブログに書いたサンプルからbase64_xxxxxxを抜いて、文字列長やコード出力(面倒なのでurlencodeで代用)を追加したものです。サンプルのフ

    「PHPで暗号化・復号あれこれ」の続き - Do You PHP はてブロ
  • mcrypt_generic関数とmdecrypt_generic関数 - ます’s Blog - どうでもいい記事100選

    パディング方法 パディング方法を変更するためには'padding'オプションを使ってください。 平文の最後のブロックがブロックサイズよりも短いとき、それはパディングされなければなりません。 パディング方法には以下のものがあります。 standard: (デフォルト) バイナリに対しても安全 切り落されるべきバイト数で埋められます。そのためブロックサイズが 8であれば、"0A0B0C"は"05"で埋められ、結果は"0A0B0C0505050505"に なります。もし最後のブロックがブロック全体で、ブロックサイズが8で あれば、"0808080808080808"というブロックが追加されます。 null: テキストのみ ブロックを一杯にするために必要なだけ"00"で埋めます。最後の ブロックがブロック全体で、ブロックサイズが8であれば、 "0000000000000000"というブロックが追加

    mcrypt_generic関数とmdecrypt_generic関数 - ます’s Blog - どうでもいい記事100選
  • 1