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のバリエーションライブラリ「Valitron」の導入及び利用方法
フォーム等の入力内容チェックをPHP側で行う際、現状は素のPHPで書いているけど ...
-
-
PHPでシンプルな英数字のCAPTCHAを「Gregwar / Captcha」ライブラリで実装する方法
PHPでシンプルなランダム英数字のCAPTCHAを実装したい。「Gregwar ...
-
-
PHPでvar_dumpをツールバー形式で表示するライブラリ「Kint」の使い方
PHPでvar_dumpを見やすくするためにdBugライブラリを利用しているが、 ...
-
-
PHPのHTTPクライアント用ライブラリ「Guzzle」の利用方法
以前に「Requests for PHP」を試したが、似たようなライブラリで「G ...
-
-
PHPで「php-qrcode-detector-decoder」ライブラリを使用してQRコードをデコードする方法
PHPでQRコードの画像をデコードし、値を変数等に格納したい。何とかならないか調 ...