php_PHP チュートリアルでの SessionID と画像検証コードの生成の考え方と実装コード
/****** セッション ID の生成 ******/
基本的な考え方は、現在のマイクロ秒時間を取得し、次に乱数を生成し、その乱数を現在の時間に追加して暗号化し、最後に必要な長さをインターセプトすることです
/*
関数名: create_sess_id()
Function 関数: ランダムなセッション ID を生成します
パラメーター: $len: セッション文字列の長さは必須です。デフォルトは 32 ビットで、16 ビット以上です
戻り値: セッション ID を返します
関数作成者: heiyeluren
*/
function create_sess_id($len=32)
{
// 送信された長さが正当かどうかを検証します
if( !is_numeric($len) || ($len>32) || ($len< 16 )) { return; }
// 現在時刻のマイクロ秒を取得する
list($u, $s) =explode(' ', microtime());
$time = (float)$u + (float)$ s;
// 乱数を生成します
$rand_num = rand($rand_num, $time);
$rand_num = mt_rand(); / セッション ID を生成します
$sess_id = md5( md5($time). md5($rand_num) );
// 指定された長さのセッション ID をインターセプトします
$sess_id = substr($sess_id, 0, $len); sess_id ;
}
/****** 確認コードを生成します ******/
アイデア: 一意性とランダム性を考慮すると、検証コードはセッション ID から文字列をインターセプトするだけで済みます。考え抜かれていてユニーク。
/*
関数名: create_check_code()
関数関数: ランダムなチェックコードを生成します
パラメータ: $len: 必要なチェックコードの長さは16桁を超えないようにしてください。デフォルトは4桁です
戻り値: 指定された長さのチェックコードを返します
関数作成者: heiyeluren
*/
function create_check_code($len=4)
{
if ( !is_numeric($len) || ($len>6) || ($len
$check_code = substr(create_sess_id(), 16, $len );
/****** 検証コード生成の画像 ******/
比較的単純な PHP 画像プログラミングのものです。写真を作成しましたが、簡単です。
/*
関数名: create_check_image()
関数: チェックコード画像を生成する
パラメーター: $check_code: チェックコード文字列、通常は create_check_code() 関数によって取得される
戻り値: 画像を返す
関数作成者: heiyeluren
*/
function create_check_image( $check_code )
{
// 画像を生成します
$im = imagecreate(65,22);
$black = ImageColorAllocate($im, 0,0,0); // 背景色
$ white = ImageColorAllocate($im, 255,255,255); // 前景色
$gray = ImageColorAllocate($im, 200,200,200);
// 4 桁の整数検証コードが画像に描画されます
imagestring($im, 5, 8, 3, $check_code, $white);
//干渉ピクセルを追加します
for($i=0;$i{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); // 出力画像
Header("Content-type: image/PNG");
ImagePNG($im);
} ここで、create_check_image() 関数を参照するときに注意する必要があります。ファイルヘッダ出力時の出力形式が画像形式となっており、他のコンテンツと混在すると画像が表示されないため、別ファイルとしてください。また、画像の生成機能を変更することもできます。たとえば、色を変更したい場合は、前景色と背景色の生成位置を変更すると、同時に色も変わります。チェックコードの色を変更する必要があります。変更しないと、背景とチェックコードが黒くなり、表示されません。
http://www.bkjia.com/PHPjc/319940.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/319940.html
技術記事
/****** セッション ID の生成 ******/ 基本的なアイデアは、現在のマイクロ秒時刻を取得し、次に乱数を生成し、その乱数を現在の時刻に追加して暗号化し、最後にそれを傍受することです...

ホット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)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
