国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ php教程 php手冊(cè) PHP の組み込み関數(shù)を使用した DES アルゴリズムによるデータの暗號(hào)化と復(fù)號(hào)化

PHP の組み込み関數(shù)を使用した DES アルゴリズムによるデータの暗號(hào)化と復(fù)號(hào)化

Jun 13, 2016 pm 12:00 PM
des php 內(nèi)蔵 書く 関數(shù) 暗號(hào)化 そして データ 生成する 目的 アルゴリズム できる 欲しい 復(fù)號(hào)化 合格 必要

プロジェクトの都合上、「認(rèn)可コード」を生成できるクラスを記述する必要があります(認(rèn)可コードには主にプロジェクトの有効期限が含まれます)。生成された認(rèn)可コードはファイルに書き込まれます。プロジェクトが実行されると、ファイル內(nèi)の暗號(hào)文が自動(dòng)的に読み取られ、一意の「キー」を使用して関數(shù)が呼び出され、暗號(hào)文が復(fù)號(hào)化され、プロジェクトの有効期限が解釈されます。
以前、base64 md5 逆文字列を中心に自分で書いてみました。このアルゴリズムは単純すぎるため簡(jiǎn)単に解読され、暗號(hào)化と復(fù)號(hào)化における「鍵」の重要性を認(rèn)識(shí)できていないため、放棄されました。
その後、関連情報(bào)を検索したところ、Mcrypt という強(qiáng)力な関數(shù)ライブラリが PHP に組み込まれていることがわかりました。
実際、mcrypt 自體は強(qiáng)力な暗號(hào)化および復(fù)號(hào)化メソッドを提供し、DES、TripleDES、Blowfish (デフォルト)、3-WAY、SAFER-SK64、SAFER-SK128、TWOFISH、TEA、 CBC、OFB、CFB、ECB の RC2 と GOST。
以下は、Baidu Encyclopedia の「暗號(hào)化アルゴリズム」の説明からの簡(jiǎn)単な引用です。
データ暗號(hào)化の基本的なプロセスは、元はプレーン テキストだったファイルまたはデータを特定のアルゴリズムに従って処理し、読み取り不可能にすることです。通常「暗號(hào)文」と呼ばれるコードで、対応するキーを入力した場(chǎng)合にのみ元のコンテンツが表示されるようにすることで、不正な人物によるデータの盜難や読み取りを防ぐという目的が達(dá)成されます。 このプロセスの逆は復(fù)號(hào)化であり、エンコードされた情報(bào)を元のデータに変換するプロセスです。
暗號(hào)化テクノロジーは通常、「対稱」と「非対稱」の 2 つのカテゴリに分類されます。
対稱暗號(hào)化とは、暗號(hào)化と復(fù)號(hào)化に通常「セッション キー」と呼ばれる同じキーを使用することを意味します。たとえば、米國(guó)政府が採(cǎi)用している DES 暗號(hào)化標(biāo)準(zhǔn)は、典型的な「対稱暗號(hào)化」です。 「暗號(hào)化方式、セッションキー長(zhǎng)は56ビットです。
非対稱暗號(hào)化は、暗號(hào)化と復(fù)號(hào)化で異なる??キーを使用することを意味します。通常、「公開キー」と「秘密キー」と呼ばれる 2 つのキーがペアになっている必要があり、それ以外の場(chǎng)合は暗號(hào)化ドキュメントを開くことができません。ここでの「公開鍵」は外部に公開できることを意味しますが、「秘密鍵」は外部に公開できず、所有者のみが知ることができます。ここに対稱暗號(hào)方式の優(yōu)位性があり、暗號(hào)化したファイルをネットワーク上に送信する場(chǎng)合、どの方法を使っても相手に鍵を伝えることが難しく、盜聴される可能性がある。非対稱暗號(hào)化方式は鍵が 2 つあり、「公開鍵」を公開できるため、受信者は復(fù)號(hào)するときに自分の秘密鍵を使用するだけで済み、鍵の送信を回避できる點(diǎn)が非常に優(yōu)れています。セキュリティの問(wèn)題。
前述したように、mcrypt は國(guó)際的に公開されているさまざまなアルゴリズムをサポートしています。このプロジェクトでは、高速で大量のデータの暗號(hào)化に適した対稱アルゴリズムである DES (Data Encryption Standard) を使用しました。
次に、暗號(hào)化クラスで使用されるいくつかの関數(shù)について簡(jiǎn)単に説明します。

------------------------------------------ ------ ------------------------------------
resource mcrypt_module_open ( string $ Algorithm , string $algorithm_directory , string $mode , string $mode_directory )
パラメータ $algorithm: 使用するアルゴリズム。関數(shù) mcrypt_list_algorithms() を通じて、サポートされているすべてのアルゴリズム名を表示できます。
パラメータ $mode: どのモードにするか同様に、サポートされているすべてのモードを表示するには、組み込み関數(shù) mcrypt_list_algorithms() を使用します

-------------------------- -------- -------------------------------------- -----
int mcrypt_enc_get_iv_size (resource $td)
この関數(shù)は、使用されるアルゴリズムの初期化ベクトル (IV) のサイズを返します (少し抽象的に見えます)。IV が次の場(chǎng)合は 0 を返します。アルゴリズムでは無(wú)視されます。
パラメータ $td は、mcrypt_module_open 関數(shù)の戻り値です。

------------------------------------------ ------ ------------------------------------
string mcrypt_create_iv ( int $ size [, int $source = MCRYPT_DEV_RANDOM ] )
この関數(shù)は初期化ベクトル (IV) を作成します
パラメータ:
$source には MCRYPT_RAND、MCRYPT_DEV_RANDOM、
MCRYPT_DEV_URANDOM を指定できます
注: PHP5。 3.0 以降、MCRYPT_RAND のみをサポート
戻り値:
成功した場(chǎng)合は、文字列の初期ベクトルが返されます。失敗した場(chǎng)合は、False が返されます。 ---------------------------------------------------- ------- ----------------
int mcrypt_enc_get_key_size ( resource $td )
この関數(shù)は、でサポートされている最大キー長(zhǎng) (バイト単位) を取得できます?,F(xiàn)在のアルゴリズム
int mcrypt_generic_init ( resource $td , string $key , string $iv )
mcrypt_generic() または mdecrypt_generic() を呼び出す前に、まずこの関數(shù)を呼び出す必要があります。この関數(shù)はバッファの初期化に役立ちます。暗號(hào)化されたデータを保存します。
パラメータ $key: キーの長(zhǎng)さ。$key の現(xiàn)在の値は、関數(shù) mcrypt_enc_get_key_size() によって返される値より小さいことに注意してください。
質(zhì)問(wèn): $key の値は大きいほど良いのですか?同級(jí)生會(huì)があれば、この質(zhì)問(wèn)に答えるのを手伝ってください。

------------------------------------------ ------ ------------------------------------
string mcrypt_generic ( resource $ td , string $data )
前の作業(yè)が完了したら、この関數(shù)を呼び出してデータを暗號(hào)化できます。
パラメータ $data: 暗號(hào)化するデータの內(nèi)容
戻り値: 暗號(hào)化された暗號(hào)文を返す

--------------------- ----- -------------------------------------- ----- ----------
bool mcrypt_generic_deinit ( resource $td )
この関數(shù)は、現(xiàn)在使用されている暗號(hào)化モジュールをアンインストールするのに役立ちます。
戻り値
成功した場(chǎng)合は TRUE を返し、失敗した場(chǎng)合は FALSE を返します。

---------- ----- -------------------------------------- ----- -
string mdecrypt_generic ( resource $td , string $data )
この関數(shù)はデータを復(fù)號(hào)化するために使用できます。
注: 復(fù)號(hào)化されたデータは実際のデータよりも長(zhǎng)くなる可能性があり、後続のデータが存在する可能性があります。


class authCode {
public $ttl;//有効期限の時(shí)刻形式: 20120101 (年、月、日)
public $key_1;//Key 1
public $key_2;//キー 2
public $td;
public $ks;//キーの長(zhǎng)さ
public $iv;//初期ベクトル
public $salt;/ /ソルト値 (特定の文字列)
public $encode;//暗號(hào)化された情報(bào)
public $return_array = array() // MAC アドレスを含む文字列配列を返します
public $mac_addr;//MAC アドレス
public $filepath;//暗號(hào)文を保存するファイルパス
public function __construct(){
//物理アドレスを取得
$this->gt;mac_addr=$ this->getmac(PHP_OS) ;
$this->filepath="./licence.txt";
$this->ttl="20120619";//有効期限
$ this->salt="~! @#$??";//暗號(hào)文のセキュリティを向上させるために使用されるソルト値
// echo "

".print_r(mcrypt_list_algorithms ())."< /pre>"; <br>// echo "<pre class="brush:php;toolbar:false">".print_r(mcrypt_list_modes())."
";
/**
* 平文情報(bào)を暗號(hào)化します
* @param $key key
*/
public function encode($key) {
$this->td = mcrypt_module_open(MCRYPT_DES,'','ecb',''); //MCRYPT_DES アルゴリズム、ecb モードを使用します
$size=mcrypt_enc_get_iv_size( $this->td);//初期ベクトルのサイズを設(shè)定します
$this->iv = mcrypt_create_iv($size, MCRYPT_RAND);//初期ベクトルを作成します
$this->ks = mcrypt_enc_get_key_size( $this->td) ;// サポートされているキーの最大長(zhǎng) (バイト単位) を返します
$this->key_1 = substr(md5(md5($key).$this-> Salt),0,$this->ks) ;
mcrypt_generic_init($this->td, $this->key_1, $this->iv); //初期処理
//必須 プレーンテキストに保存
$con=$this ->mac_addr.$this->ttl;
//暗號(hào)化
$this->encode = mcrypt_generic($this->td, $con ); >mcrypt_generic_deinit($this->td);
//暗號(hào)文をファイルに保存します
$this->savetofile();
/**
* 暗號(hào)文を復(fù)號(hào)化します
* @param $key key
*/
public function decode($key) {
try {
if (!file_exists($this->filepath)){
throw new Exception ("認(rèn)証ファイルが存在しません"); >}else{// 認(rèn)証ファイルが存在する場(chǎng)合は、認(rèn)証ファイル內(nèi)の暗號(hào)文を読み取ります
$fp=fopen($this->filepath,'r' );
$secret=fread($fp, filesize($this->ファイルパス));
$this->key_2 = substr(md5(md5($key).$this->salt ),0,$this->ks); ??>//初期復(fù)號(hào)化処理
mcrypt_generic_init($this->td, $this->key_2, $this->iv);
//復(fù)號(hào)化
$decrypted = mdecrypt_generic($this) ->td, $secret);
//復(fù)號(hào)化後、後続の可能性があります

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

最新のPHP開発とベストプラクティスを最新の狀態(tài)に保つにはどうすればよいですか? 最新のPHP開発とベストプラクティスを最新の狀態(tài)に保つにはどうすればよいですか? Jun 23, 2025 am 12:56 AM

postaycurrentwithpdevellyments andbest practices、follow keynewsourceslikephp.netandphpweekly、egagewithcommunitiessonforums andconferences、keeptooling and gradivallyadoptnewfeatures、andreadorcontributeTopensourceprijeprijeprijeptrijeprijeprests.

PHPとは何ですか、そしてなぜそれがWeb開発に使用されるのですか? PHPとは何ですか、そしてなぜそれがWeb開発に使用されるのですか? Jun 23, 2025 am 12:55 AM

PhpBecamepopularforwebdevelopmentduetoitseaseaseaseaseasease、SeamlessintegrationWithhtml、widespreadhostingsupport、andalargeecosystemincludingframeworkelavelandcmsplatformslikewordspresspressinsinsionsisionsisionsisionsisionsionsionsisionsionsionsisionsisions

PHPタイムゾーンを設(shè)定する方法は? PHPタイムゾーンを設(shè)定する方法は? Jun 25, 2025 am 01:00 AM

tosettherighttimezoneInphp、usedate_default_timezone_set()functionthestthestofyourscriptwithavalididentifiersiersuchas'america/new_york'.1.usedate_default_timezone_set()beforeanydate/timefunctions.2.2.Altertentally、confuturethephp.inifilebyset.

クリーンで保守可能なPHPコードを書くためのベストプラクティスは何ですか? クリーンで保守可能なPHPコードを書くためのベストプラクティスは何ですか? Jun 24, 2025 am 12:53 AM

清潔で維持しやすいPHPコードを書くための鍵は、標(biāo)準(zhǔn)、合理的な構(gòu)造に従って、コメント、テスト能力を適切に利用する明確な命名にあります。 1。$ userDataやcalculatetotalprice()などの明確な変數(shù)、関數(shù)、クラス名を使用します。 2。PSR-12標(biāo)準(zhǔn)統(tǒng)一コードスタイルに従ってください。 3.責(zé)任に従ってコード構(gòu)造を分割し、MVCまたはLaravelスタイルのカタログを使用して整理します。 4.麺スタイルのコードを避け、単一の責(zé)任でロジックを小さな関數(shù)に分割します。 5.キーポイントにコメントを追加し、インターフェイスドキュメントを書き込み、パラメーター、返品値、例外を明確にします。 6.テスト可能性を改善し、依存関係を採(cǎi)用し、グローバルな狀態(tài)と靜的な方法を減らします。これらのプラクティスは、コードの品質(zhì)、コラボレーション効率、メンテナンス後の容易さを改善します。

Bian Binance Exchange公式ウェブサイトログインポータル Bian Binance Exchange公式ウェブサイトログインポータル Jun 24, 2025 pm 06:15 PM

Binanceは、優(yōu)れたセキュリティ、豊富な取引品種、スムーズなユーザーエクスペリエンスを備えた世界をリードする暗號(hào)通貨取引プラットフォームです。資産のセキュリティを確保するために多層セキュリティアーキテクチャを採(cǎi)用し、スポット、レバレッジ、契約などのさまざまなトランザクションタイプを提供し、効率的な取引を確保するための高い流動(dòng)性を備えています。ログイン手順には次のものが含まれます。1。公式Webサイトにアクセスして、URLを確認(rèn)します。 2。右上隅の[ログイン]ボタンをクリックします。 3.電子メール/攜帯電話番號(hào)とパスワードを入力します。 4. 2要素検証、SMS、または電子メール検証コードなどの完全なセキュリティ検証。 5.クリックしてログインして操作を完了します。また、このプラットフォームは、Binance Reath、NFT Market、Academy、その他の特別な機(jī)能を提供し、フィッシングWebサイトに注意し、2FAを有効にし、取引リスクを理解し、詐欺に注意し、そのことを確実にすることをユーザーに思い出させます。

PHPでページキャッシュを使用するにはどうすればよいですか? PHPでページキャッシュを使用するにはどうすればよいですか? Jun 24, 2025 am 12:50 AM

PHPページのキャッシュは、サーバーの負(fù)荷を削減し、ページの読み込みをスピードアップすることにより、ウェブサイトのパフォーマンスを改善します。 1.基本ファイルキャッシュは、靜的HTMLファイルを生成し、有効期間中にサービスを提供することにより、動(dòng)的コンテンツの繰り返し生成を回避します。 2. OpCacheがPHPスクリプトをBytecodeにコンパイルし、メモリに保存できるようにし、実行効率を向上させます。 3。パラメーターを備えた動(dòng)的ページの場(chǎng)合、それらはURLパラメーターに従って個(gè)別にキャッシュする必要があり、キャッシュされたユーザー固有のコンテンツを避けます。 4. PHPFastCacheなどの軽量キャッシュライブラリを使用して、開発を簡(jiǎn)素化し、複數(shù)のストレージドライバーをサポートできます。これらの方法を組み合わせることで、PHPプロジェクトのキャッシュ戦略を効果的に最適化できます。

PHP(&&、||、!、および、または、xor)で論理演算子を使用するにはどうすればよいですか? PHP(&&、||、!、および、または、xor)で論理演算子を使用するにはどうすればよいですか? Jun 23, 2025 am 12:56 AM

PHPでは、論理演算子が條件を組み合わせたり評(píng)価したりするために使用され、主な演算子には&&、||、または!、およびX(jué)orが含まれます。 1。&&と優(yōu)先事項(xiàng)の違い。 &&は割り當(dāng)てオペレーターよりも高く、割り當(dāng)て演算子よりも低いため、割り當(dāng)てを組み合わせると動(dòng)作が異なります。 2. ||また、同様の優(yōu)先度の違いがあります||割り當(dāng)てよりも優(yōu)先されますが、割り當(dāng)て後に処理されます。 3.!オペレーターは、ブール値を反転するために使用され、條件が間違っているかどうかを確認(rèn)するためによく使用されます。また、正しいアプリケーションを確保するために複雑な式をブラケットに包むことをお?jiǎng)幛幛筏蓼埂?4.XORは、2つの値のうち正確な値が真である場(chǎng)合にのみTRUEを返します。

See all articles