PHP は、繰り返しのない数字と文字を含む 12 桁の会員カード番号を生成します
データベースに問い合わせることなく、ログインする各メンバーは、数字と文字の一意の組み合わせでメンバーシップ カード番号を生成します。
ディスカッションへの返信 (解決策)
function generate_password( $length = 12 ) { $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $password = ''; for ( $i = 0; $i < $length; $i++ ) { $password .= $chars[ mt_rand(0, strlen($chars) - 1) ]; } return $password;}echo generate_password(12);
$alpha_numeric = 'abcdefghijklmnopqrstuvwxyz01234567890';
echo substr(str_shuffle($alpha_numeric),0,2).strtotime("now");
タイムスタンプ + セッション ただID ハッシュを計算します
同じルール/順序に従って組み合わせを分割するだけです
GUID を計算してから md5 を取得し、次に sha1 を取得してから 12 桁をインターセプトするなど、多くの方法があります...笑
最も簡単です考えるべきことは、乱数を使用しますが、2 つの結果が明らかに異なることを証明することはできません
MD5 は 32 ビットの結果文字列を生成し、MD5 に「衝突」があることが証明されています。つまり、2 つの異なるコンテンツが同じ MD5 値を持ちます。
同様に、切り捨てを証明することはできません。最終的な MD5 値は元の文字列と同じ一意性を持つため、パラメータとして時間を使用する方が安全です。もちろん、この生成アルゴリズムにも制限があります。 12 桁の 16 進数には、最大で pow(36, 12) 個の状態があります
合計が pow(36, 12) を超えると、必ず繰り返しが発生します
MD5 は 32 ビットの結果文字列を生成しますが、MD5 に「衝突」があることが証明されています。つまり、2 つの異なるコンテンツが同じ MD5 値を持っています
同様に、切り捨てられた結果も証明することはできません。 MD5 値は元のものと同じです 文字列は同じ一意性を持っています
したがって、時間をパラメータとして使用する方が安全です
function foo() { $o = $last = ''; do { $last = $o; usleep(10); $t = explode(' ', microtime()); $o = substr(base_convert(strtr($t[0].$t[1].$t[1], '.', ''), 10, 36), 0, 12); }while($o == $last); return $o;}
合計が pow(36, 12) を超えると、必然的に重複が発生します
司会者の言うことは正しいです。 1階の方法はどうでしょうか?
司会者、この文章は間違って書かれていますか? $o = substr(base_convert(strtr($t[0].$t[1].$t[1], '.', ''), 10, 36), 0, 12);
#1 を使用します。は乱数なので、同一実行内で複数回呼び出されても問題ありません
が、プログラムを複数回実行した場合に問題がないという保証はありません
$o = substr(base_convert(strtr($ t[0].$t [1].$t[1], '.', ''), 10, 36), 0, 12)
何も問題ありません
$t =explode(' ', microtime(); );
$t[0] が実際の小数部分である後、$t[1] は時間の正の部分です
小数部分の長さが異なるため、12 ビットの結果は保証できません
おそらくその方が良いでしょう小数部の長さを直接拡張します
どうしてそれが可能ですか?
残りの 41 行には何を書きましたか?なぜ見えないのですか?
残りの 41 行には何を書きましたか?なぜ見えないのですか?
解決しました!直接貼り付けたのでスペースが空いてしまいました。 $o=substr(base_convert(strtr($t[0].$t[1].$t[1], '.' ,''), 10, 36), 0, 12);

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
