株式会社タフス

スタッフのちょっとした日常BLOG

暗号化方式の振り替え: mcryptからopensslへ

背景

PHPのmcrypt拡張が非推奨となり、今後の互換性を考慮してopensslへの移行を行う必要がありました。既存のシステムではmcryptを使用してデータを暗号化しており、これをopensslを使った暗号化に置き換えることで、同じ結果が得られるようにしたいという課題がありました。

課題

  • mcryptを使用して暗号化されたデータをopensslを使用して同じ結果を得る
  • 特に、AES-128-ECBモードでの暗号化が求められた

移行方法

以下の手順でmcryptからopensslへの移行を行いました。

mcryptでの暗号化
function enCrypt($str) {
    $urlEncode = "";
    if ($str == "" || strlen($str) == 0) {
        return $urlEncode;
    }
    $conf = Zend_Registry::get('crypt');
    $key = $conf['key'];
    $keycheck = $this->_keyCheck($key);
    $text = $str;

    srand();
    $size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($size, MCRYPT_RAND);

    try{
        $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_ECB, $iv);
        $hex = bin2hex($encrypted);
        $urlEncode = urlencode($hex);
    } catch (Exception $e) {
        throw new SystemException("暗号化処理で失敗しました。",SystemException::EXCEPTION_SYSTEM_ERROR);
    }
    return $urlEncode;
}


opensslでの暗号化
function paddingZero($plane) {
    if (strlen($plane) % 16) {
        $plane = str_pad($plane, strlen($plane) + 16 - strlen($plane) % 16, "\0");
    }
    return $plane;
}

function enCrypt($str, $key) {
    if ($str == "" || strlen($str) == 0) {
        return "";
    }

    $paddedStr = paddingZero($str);

    $encrypted = openssl_encrypt($paddedStr, 'aes-128-ecb', $key, OPENSSL_RAW_DATA);
    $hex = bin2hex($encrypted);
    return urlencode($hex);
}

$key = '************';
$password = '***********';

$encrypted_password = enCrypt($password, $key);
echo "暗号化されたパスワード: $encrypted_password\n";

$expected_value = '******************************';
if ($encrypted_password === $expected_value) {
    echo "暗号化されたパスワードは期待通りの値と一致します。\n";
} else {
    echo "暗号化されたパスワードは期待通りの値と一致しません。\n";
}


結果

  • mcryptopensslで同じ暗号化結果を得るためには、適切なパディングとモードを一致させる必要があります。
  • 上記のopensslを使用したコードにより、既存のmcryptによる暗号化結果と一致させることができました。

この移行により、PHPの最新バージョンでも互換性のある安全な暗号化が実現できました。

広告ブロッカー

こんにちは。saharaです。

悪質な広告が増えている近年、皆様どのような対策をされておりますでしょうか。

自分は「いうてそんな悪質な広告には慣れてるから!」という慢心で
未対策だったのですが、先日スマホで調べ物をしたら
「ページが広告だらけでスクロールすらできなかった」という洗礼を味わい、
本腰上げて広告対策しようと決意しました。

という訳で、調べた感じ高評価だったこちらの広告ブロッカーを
買い切りで購入してインストールしてみました。

280blocker – 広告ブロック-コンテンツブロッカー
https://apps.apple.com/jp/app/id1071235820

結果「実は今まで凄い広告まみれだったんだ!」とビックリする程
WEBブラウザ操作が快適になりました。
スクロール時間が段違いです。見たい情報の結論にすぐたどり着ける!

他、副産物としてモバイル通信のデータ量が驚くほど激減しました。
実は通信料の見直しを水面下で検討していたのですが、
その悩みが一緒に吹き飛びました。一石二鳥とはまさにこの事か。

スマホでの悪質広告に悩まれている方はぜひ検討してみてください。

旅行行ってきました。

友人4人との旅行から帰ってきましたのでブログを書きます。
あいにくの天気になりましたが、観光している間はギリギリ傘を差さなくてもセーフなくらいの雨だったのでたすかりました。

清水寺と金閣寺に行ってきたのですが、清水寺は海外からの旅行者がほとんどでここ日本だっけ? と思うくらいです。

金閣寺は清水寺ほどではなかったですが、やはり海外からの旅行者の方々がメインでした。
久々に見た金閣寺はなんか昔に比べてだいぶきれいになったなぁという印象でしたね。

どちらも周囲から日本語が聞こえてこないというなかなか体験しない状況になかなか戸惑いましたが、お土産などを探しているとやっぱりここ日本だなと不思議な安心感がありましたねw

自分用に買って帰った生八つ橋(チョコ)がおいしかったです。

スペース・マウンテン乗り納め

1983年の開園当初から41年間もの長きにわたり東京ディズニーランドのシンボルだったスペースマウンテンが2024年7月31日をもってエリアリニューアルのためクローズする、とのことで
THE FINAL IGNITION!してきました。見慣れたドームも見納めです。

クローズするといってもスペースマウンテン自体はリニューアルのためのクローズとなります。
が、再開予定が2027年とすこーし先になるのでしばらくのお別れ、ということになります。
今は最後のイベント、ということで付近のキャストさんがステッカー配ったり、実際のライドを配置したフォトスペースがあったりと見どころも多くなっています。
2024年7月31日まで実施していますので、最後に思い出作りたい方は是非足を運んでみてください。
リニューアル後パワーアップして帰ってくるのが楽しみです。

蓮の花

 ブラブラ散歩していたら、テニスコートの隣の「府中市寿中央公園ひょうたん池」で蓮の花が咲いているのを、偶然、見つけました。

 「仏様が蓮の花弁の台座の上に座っている姿」を仏画で見かけますが、たまたま、花の上でシオカラトンボが羽を休めていました。

トンボは一匹しか見かけませんでしたが、このひょうたん池で生まれ、そして、仏様に見守られながら子孫を残していく姿を想像してしまいました。

MS試験『AZ-500』について

こんにちは。タフスのA-kenです。

先日マイクロソフトの資格試験である「AZ-500」を取得しましたので、
それについて記載したと思います。

まず、AZ-500 はAzureにおけるセキュリティ関連の資格試験となるのですが、、、
同じ”AZ”が付く AZ-900 や AZ-104 などと比較すると、 マイナーな資格です。。。

そのため、合格に必要となる教本や過去問も他の試験と比較すると結構少ないです。

私は以下で勉強することで 合格できましたので、
AZ-500 取得を目指す 誰かのお役に立てばと思います。

・Udemy:AZ-500関連の過去問は「簡単」か「更新」が少ないものが多い。
 → 「AZ-500 Microsoft Azure Security Exam Certification」がおすすめ。
   →英語ですが各操作を見れるので設定がイメージしやすい。練習問題付き

・MSの練習問題:おそらく総問題数は100問もない。

上記2つとも90%程度取れれば、合格も見えてくると思います。


以上、AZ-500 について でした~~

在宅時の食事

コロナ禍を経て、在宅勤務が日常となりましたが、
某300円均一のお店で買ったビストロヌードルに日々助けられています。

電子レンジでラーメンが作れるという代物で、
私の一番のお気に入りである、某袋麵の塩とんこつ味に野菜を入れて食べるほかにも、
電子レンジでパスタをゆでたり、野菜を蒸したりと大変便利です。
おすすめです!

飛行機で飲めるあのスープ

こんにちは。saharaです。

コロナ禍の習慣ですっかり旅行とご無沙汰状態です。

その中でふと「飛行機で飲めるあのスープが飲みたいなぁ」と
思い出してしまいました。
JALなのかANAなのかは不明なのですが、コンソメ味のスープで
これから始まる旅のワクワク感を盛り上げてもらいました。

飛行機に乗らずとも飲める方法はないかなと調べた結果、
うっそ普通に一般流通してるじゃん!!!!

JALスープ|株式会社 明治 – Meiji Co., Ltd.
https://www.meiji.co.jp/foods/soup/jal_soup/

秒で購入して着荷後も秒で飲みました。
そうそう、この味!この味です!!

大量に購入したので、これでいつでも空旅気分を味わえそうです。
あのスープがお好きな方はご購入してみてはいかがでしょうか!

旅行に行ってきます。

めちゃくちゃ暑いからの突然の梅雨入りでとんでもない勢いで雨が降っております。
そんな中、かねてより計画していた友達との岐阜に旅行に明日から2日間いってきます。

めったに旅行に行くことがないので、移動疲れとかが心配ですが久々に友達と会うのは楽しみですね。
温泉でゆっくりする予定なので天候はそこまでスケジュールに影響はないですが、できれば晴れてほしかったなぁというところですが、こればっかりは友人たちの日ごろの行いが悪いのでしょうw

温泉以外は具体的に何をするかは現地に集まってからその場のノリで決めるので何が起きるのかわかりませんが、楽しんできたいと思います。

ようやく。。。

関東も梅雨入りとなりました。
今日は夏至で、一年で一番昼の時間が長いですが、
あいにくの雨で感じられなさそうです。

ここ最近は本当に寒暖差も激しく、山形のさくらんぼも異常気象により不作と
ネットニュースで見かけました(双子のようなのも多いそうです)
果物が旬の時期に食べられない、なんてことが近い将来起こりそうですね。。。