PHPにて「hashids(Sqids)」ライブラリで数値からユニークなランダム英数字のIDに変換する方法
PHPにてユーザID等を推測されないよう数値のIDからユニークなランダム英数字のIDに変換したかった。また、逆にランダム英数字のIDから数値のIDに再変換もしたかった。調べたところ「hashids(Sqids)」ライブラリで対応できる模様。以下に実装方法のメモ。
hashids(Sqids)
公式サイト
ライブラリ名だけど元々はhashidsで後からSqidsになったみたい。
GitHub
https://github.com/vinkla/hashids
インストール
サーバにSSH接続し以下コマンドでインストールする。
composer require hashids/hashids
利用方法
ソースコード
<?php require_once 'vendor/autoload.php'; use Hashids\Hashids; //ハッシュ化させるID $id = 5; //ハッシュの長さ $length = 10; $hash_class = new Hashids('', $length); $encode_id = $hash_class->encode($id); var_dump($encode_id); //string(10) "4openRe7Az" $decode_id = $hash_class->decode($encode_id); var_dump($decode_id); //array(1) { [0]=> int(5) }
ハッシュの長さについて
new Hashids()の第二引数でハッシュの長さを指定できるが、正確にその長さになるというわけではなく、指定した長さに収まる設定とのこと。
復号化について
復号化すると配列で返ってくる点に注意する。
その他
アクセスIPからランダム英数字のIDを作成したい場合は以下過去記事参照。
関連記事
-
-
PHPで簡単にカレンダーを生成できるライブラリ「PHP Calendar」の利用方法
PHPでカレンダーを描写したいということがたまにある。今までバニラPHPで書いて ...
-
-
PHPでダミー画像(プレースホルダー画像)を表示する「PHP-Dummy-Image-Generator」の利用方法
先日JavaScriptでダミー画像(プレースホルダー画像)を表示する「Hold ...
-
-
PHPのHTTPクライアント用ライブラリ「Guzzle」の利用方法
以前に「Requests for PHP」を試したが、似たようなライブラリで「G ...
-
-
MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法
MySQLのバックアップを取る際にadminerとかから手動で対応するのではなく ...
-
-
PHP Qr Codeライブラリを使用してQRコードを生成する方法
PHPでQRコードを生成したい。大分前にGoogle Chart APIを用いて ...