PHPで動作するデータの暗号化・復号化のメモです。 通信時やDBのアクセス時などで使用します。 動作環境 PHP 7.3.11 プロトコル AES-256-CBCを使用します。 const AES_KEY = 'tekitou_key'; const AES_IV= 'tekitou_iv'; /** * 暗号化 * @param string $data * @return string */ function encrypt($data) { return $data === null ? null : openssl_encrypt($data, 'AES-256-CBC', AES_KEY, 0, AES_IV); } const AES_KEY = 'tekitou_key'; const AES_IV= 'tekitou_iv'; /** * 復号化 * @param stri
問題 phpで文字列を暗号化して、元の文字列に戻せますか。 答え ハッシュを生成するのではなくて(md5,sha)、暗号化、復号化をする場合はMcrypt関数が使える。OpenSSL関数もいいらしい。 Mcrypt関数 mcrypt_cbcやmcrypt_cfbではなく、暗号化に mcrypt_generic()、復号化にmdecrypt_generic() を使えとのことなので、そのようにしてみる。 <?php /* データ */ $key = '長い鍵長い鍵長い鍵長い鍵長い鍵長い鍵長い鍵長い鍵長い鍵長い鍵'; $plain_text = '暗号化したいデータ'; /* モジュールをオープンし、IV を作成 */ $td = mcrypt_module_open('des', '', 'ecb', ''); $key = substr($key, 0, mcrypt_enc_get_ke
序文 ~数行とは何だったのか~ 「WebPay」サービスの終了とイプシロン決済サービスへの移行方法 で、「イプシロン決済サービスも数行コードで組込可能です」と、ご紹介いただいたページがこちら。 イプシロン開発者向け情報:イプシロンCGI利用ガイド (白目) 「営業の約束」から「実装されたコード」へ イプシロン開発者向け情報:都度課金 HTTP_Request2やXML_SerializerなどのPEARライブラリを強制させられたり (まあ、環境に依存する関数を極力使用しない為に使用したものと思いたい)、 応答に使用する文字コードがUTF-8だかShift-JISだか混在してたり、 「& new XML_Unserializer();」という記述に一抹の不安を覚えたり、 ページ記載とは別のパラメータが帰ってきてしまったりと、まあ色々。 PHP開発者が退職されてしまったのだろうか……。 そこで
定数 PHP_OS は OS の種類を返します。 var_dump(PHP_OS); // Windows XP : 'WINNT' // Solaris 10 : 'SunOS' Windows では PHP 5.3.0 以降 PHP_WINDOWS_VERSION_MAJOR 定数など(PHP_WINDOWS_*****)によって 詳細なバージョンを取得することができるようになりました。 定数 DIRECTORY_SEPARATOR はファイルパスの区切り文字を返す定数です。 var_dump(DIRECTORY_SEPARATOR); // Windows XP : '\' // Solaris 10 : '/' //以下のようにファイルパスを組み立てる場合に使用する。 $path = $dirname . DIRECTORY_SEPARATOR . $filename; PATH_
こんにちは! 東京なのに周辺にポケストップが1つもない田舎に住んでいます、@fortkle です(世田谷公園の徒歩圏内に引っ越したいです)。 さて、みなさんはPHPアプリケーションのデプロイツールに何を使っているでしょうか。 今回コネヒトで Deployer というPHPで書かれたデプロイツールを採用したのですが、なぜDeployerなのかという理由と、実際に使っているおすすめの設定をいくつか共有したいと思います。 ※ Deployerのインストール方法や基本的な使い方を知りたい場合は既にインターネット上に良い記事がたくさんあるのでそちらを参考にしてみてください。 デプロイツール、どうする? 今回、新しく小規模PHPアプリケーションをデプロイする機会があったため下記の条件で新しくデプロイツールの選定を行いました。 PHPのアプリケーションなので デプロイツールもPHP製のもの を採用したい
今日はPHP界隈で大人気のDependency Injectionと、それに関連する用語について整理しておこうと思います。 以下のような状況があるのではないか?と思ったからです。 多くのPHPユーザがDependency Injection(DI)をよくわかっていない、あるいは正確に説明できません。 そして、デザインパターンである「DIパターン」とDIをサポートするツールである「DIコンテナ」を混同しています。 また、「DIパターン」と「サービスロケータパターン」をうまく区別できていません。 Dependency Injectionとは何か? Dependency Injectionとは「Dependency」を「Injection」するというデザインパターンです。 日本語では何故か「依存性の注入」と訳されており、これが混乱の元ではないかと思います。 日本語で「依存性」と言うと、「依存性は
PHP5.3からクロージャが利用可能であり、高階関数を積極的に利用して簡潔なコードを心がけたいのですが、一度調べておかないと意外な関数が利用可能であることに気づかなかったりするのでまとめ(個人的によく使う順)。 array_map PHP: array_map - Manual 高階関数で最も代表的と思われるもの。map-reduceのmap。配列の各要素をクロージャを用いたマッピングを行い、別の配列を作ります。 <?php $prices = [100, 200, 300]; $taxInPrices = array_map(function($price) { return $price * 1.08; }, $prices); var_dump($taxInPrices); // array(3) { // [0]=> float(108) // [1]=> float(216) /
毎回設定方法を忘れて検索するのがつらいのでメモしておきます。 C:\Develop以下で構成。XAMPPのドキュメントルートはそのまま、実際に使うのはC:\Develop\www以下にディレクトリ作る。WordPressのルートはC:\Develop\www\wpにする。MySQLのdataもXAMPPとは別ディレクトリのC:\Develop\mysqlに。WordPressのURLはwp.localhostにする。バーチャルホストの設定とか今回はC:\Develop\xamppにインストールする。 インストールが終わったらphp.iniの設定。 mbstring.language = Japanese date.timezone=Asia/Tokyoとりあえずこれだけやって、他は本番用サーバーにあわせる。 参考リンク: php.iniファイルの確認と修正 - XAMPPの使い方 Apac
YYPHP#62「PHP5の終了について、PHP7を現場でみんなどのくらいやってる?、PHP業界のこと、VagrantでLaravel環境を作ったその先、管理画面をどうやってつくってる?、フレームワークのコードリーディング、オブジェクト指向とかMVCがうまく扱えない」JavaPHPVagrantLaravelYYPHP これは2018年11月23日に開催したPHPerイベントYYPHP#62のイベントレポートです。 YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開発ツールを触ってみたり、フレームワークについての情報交換をすることもあります。開催はほぼ毎週、高田馬場にて。 YouTubeでの配信映像はこちら-> #YY
このたび生まれて初めて本を出版することになりました! 『TECHNICAL MASTER はじめてのPHPプロフェッショナル開発 PHP7対応』というタイトル(以下、プロフェッショナル本)で2019年2月26日(火)に秀和システムさんから発売されます。 会社の同僚と書いたので、是非買ってください!(石直球) しかし「せっかく買ったのに思ってたんと全然違うやんけ!」となるのも申し訳ないので、プロフェッショナル本がどういう本なのか簡単に紹介したいと思います。 プロフェッショナル本の概要 一言で言うと プログラミングの入門書を読み終えた人が、実際の開発現場で活躍するために必要なアレコレをPHPを題材に解説している本 です。ボリュームは実質390ページほどになります。中身は導入編、入門編、実践編、発展編の4つのパートで構成されています。 最初の導入編では昨今のPHPとそれを取り巻くエコシステムを紹
複数人で開発していると、コードの書き方(インデントやブレスでの改行など)について意見が分かれることがあるかと思います。 また、PHP7.0以降で使えるタイプヒントは、宣言した型が不一致だとエラーになってくれますが、実行するまでエラーになるかわかりません。 安心安定の開発にはこれらが障害になりますので、静的解析によって排除しましょう。 今回はそのためのツールと簡単な使い方を書きます。 PHP_CodeSniffer PHPMD PHPStan Larastan 余談 おわりに PHP_CodeSniffer github.com 決められたコーディング標準を守っているかをチェックするツールです。 ここではPSR-12への準拠をチェックする例を示します。 導入 ルールファイル(phpcs.xml)作成 実行 # Composerで導入 $ composer require --dev squi
2018/12/30にGoogle日本語版で『PHP メールフォーム』を検索した結果です。 日によって変動する可能性があります。 1位 PHP工房 https://www.php-factory.net/mail/01.php PHP4.3.9~PHP7 やめろ。 努力はわかるのだが、努力の方向性が全力で間違っているというか。 クラスすら使えない時代の古のPHPに対応するため、今から見ると「とてもひどい」としか言いようのない構造です。 しかもそのままの状態で進化し続けてしまったため、もはや手の出しようがない混沌になっています。 そんな有様でありながら、脆弱性対策もしっかり行っており、CSRF対策やレスポンシブ対応までしっかりされています。 惜しくも$mail_check=0にした場合にメールヘッダインジェクションできますが、これはメアド形式チェックをしないというフラグで、デフォルトもチェッ
2024-09-10 テクノロジア魔法学校の体験談と評判 「テクノロジア魔法学校」というプログラミング教材をご存知ですか? ホームページの広告などで一度は目にしたことがある人も多いのではないかと思いますが、ディズニーが提供する子供向けのプログラミング教材です。 今回は、この「テクノロジア魔法学校」の体験版を実際に体験してみての感想や、「テクノロジア魔法学校」がどのようなものか、その評判などを見ていきたいと思います。 テクノロジア魔法学校とは 料金 エント […] 2024-09-10 レンタルサーバー「クイッカ」の評判と使い勝手 レンタルサーバーとして有名なサーバーの一つに、「クイッカ」があります。 名前は聞いたことのある人も多いのではないかと思いますが、今回はこの「クイッカ」について、料金やスペック、評判などを見ていきたいと思います。 レンタルサーバー「クイッカ」の基本情報 レンタルサー
PhpStormの購入とアクティベートの記録です。 しばらく試供品を試しておりましたが、PHP開発ではPhpStorm以外の選択肢は無いと思い至りました。 貧乏性ゆえ、どうにかこうにか「無料で良いツール無いかな」と探しておりましたが、有償無償ひっくるめて、これを超えるものは見つかりませんでした。 今まで慣れ親しんだVisualStudioを優に超えています。 使い易さが良く練られていて作り手の思い入れを感じます。 間違いなく必携ツールと言えましょう。こいつなら金を払っても全く惜しくありません。 惜しむらくは日本語訳があると良いのですが、オール英語でもそれを乗り越えられる威力があります! コメント欄にて日本語化のやり方があることを教えていただきました。 しかもEclipser必携であるPleiadesの作者様から! こんな場末のブログにたまげたなあ。 開発業務でJavaを触った時にPleia
YYPHP#51「みんなが好きなフレームワーク、どのくらいまじめにテストやってる?、PHPを使う上でこれは知っておくべきこと、1番詳しいPHPの技術書はどれですか?、Dockerのベストプラクティスについて聞きたい、アプリケーションのGitリポジトリとインフラのGitリポジトリをそろそろ一緒にしていいか?、PHPUnitのコードバレッジと実行速度の話、PHPとオブジェクト指向を知り尽くした人がこれから目指すさらなる高み」PHPRailsLaravelDockerYYPHP これは2018年09月07日に開催したPHPerイベントYYPHP#51のイベントレポートです。 YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く