質問: phpで特定のディレクトリ配下の画像だけ画像URLを暗号化したいと考えています。(暗号化⇔複合化) ネットで調べたところ下記2つのやり方があるのかなと思っているのですが 1openssl_encrypt()⇔openssl_decrypt() 2Crypt_Blowfish->encrypt⇔Crypt_Blowfish->decrypt 上記の2つの違いがいまいち理解できずどちらを使用したほうがいいのか迷っています。。 ネットで調べたところ 1は標準関数なので簡単に使える? 2はpearのモジュールなのでインストールが必要? という感じなのかなー・・?と思ったのですが 「~の場合はopenssl_encryptを使ったほうがよくて」「~の場合はBlowfishでやったほうがいいよ」のようなそれぞれの関数の使いどころみたいなのが解りませんでした。。。 メリット・デメリットを含め使い分けのざっくりとした基準などをご教示いただけないでしょうか? 暗号化の処理を実装したことがないため質問内容自体がちぐはぐかもしれませんがどなたか教えてください・・・ ■追記 質問内容と意図が解りにくくてすみませんでした・・ https://XXXX.com/img/item/1.png https://XXXX.com/img/item/2.png https://XXXX.com/img/item/3.png のような画像urlの場合に他の人から画像urlを予測されてしまうのが嫌だったのでランダムなurlにならないかなという目的でした。。 https://XXXX.com/img/item/3.png ↓ https://XXXX.com/img/item/K30aw3ifuM+iZNYqt5pWadcX/IBP2MHjLaYSX2kC/7Qz6GSKDoPR5pKS.png 調べてるなかで質問の2つの関数の違いがわからなくて質問させて頂いた次第です。。 回答して下さった皆様ありがとうございました! すっきりしました!
回答: PEARはPHP4時代の負の遺産なので,PHP5/PHP7における開発では基本的に使わないほうがいいです。外部ライブラリを使うにしてもComposer+Packagistからのインストール1択で,時代遅れのPEARを使う余地は一切ありません。 > > phpで特定のディレクトリ配下の画像だけ画像URLを暗号化したいと考えています。(暗号化⇔複合化) > > > これどういう意味でしょうか...?データを暗号化するのではなく,ファイル名を暗号化...? あと質問内容的に「ハッシュ化」と「暗号化」が混同されているような気がするので,一度調べてみてください。 暗号化とハッシュ化に関する基本的な事柄まとめ - Qiita