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

ホームページ バックエンド開発 PHPチュートリアル PHP での AES 暗號(hào)化ファイルの解析 (コード付き)

PHP での AES 暗號(hào)化ファイルの解析 (コード付き)

Aug 04, 2018 pm 01:56 PM
暗號(hào)化

この記事の內(nèi)容は、PHP での AES 暗號(hào)化ファイルの解析 (コード付き) です。一定の參考価値があります。困っている友人は參考にしてください。お役に立てれば幸いです。

AES の概要

Advanced Encryption Standard (AES、Advanced Encryption Standard) は、最も一般的な対稱暗號(hào)化アルゴリズムです (WeChat アプレットの暗號(hào)化送信にはこの暗號(hào)化アルゴリズムが使用されます)。対稱暗號(hào)化アルゴリズムは、暗號(hào)化と復(fù)號(hào)化に同じキーを使用します。

対稱暗號(hào)化
暗號(hào)化と復(fù)號(hào)化に使用される鍵が同じであるため、非常に高速で、頻繁にデータを送信する場(chǎng)合に適した暗號(hào)化方式です。欠點(diǎn)は、キーの送信が面倒なことです。秘密鍵は簡(jiǎn)単に漏洩します。

非対稱暗號(hào)化
暗號(hào)化と復(fù)號(hào)化に使用される鍵は異なります。この暗號(hào)化方式は、難しい數(shù)學(xué)的問題を使用して構(gòu)築されています。通常、暗號(hào)化と復(fù)號(hào)化の速度は比較的遅いです。時(shí)々データを送信するのに適しています。利點(diǎn)は、キー送信が便利であることです。一般的な非対稱暗號(hào)化アルゴリズムは、RSA、ECC、EIGamal です。

注:
PHP7.2 では Mcrypt 拡張機(jī)能が削除されており、ここでは OpenSSL 拡張機(jī)能が使用されています。

<?php /*
* AES 算法    
*/class Aes {

    private $hex_iv = &#39;00000000000000000000000000000000&#39;; 

    private $key = &#39;397e2eb61307109f6e68006ebcb62f98&#39;;    
    function __construct($key) {
        $this->key = $key;        
        $this->key = hash(&#39;sha256&#39;, $this->key, true);
    }    /*
    * 字符串加密 不寫入文件 
    */
    public function encrypt($input)
    {
        $data = openssl_encrypt($input, &#39;AES-256-CBC&#39;, $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->hex_iv));        
        $data = base64_encode($data);        
        return $data;
    }    /*
    * aes 給PHP文件加密
    * 寫入設(shè)置文件
    */
    public function filecrypt($filename)
    {
        $type=strtolower(substr(strrchr($filename,&#39;.&#39;),1));            
        if (&#39;php&#39; == $type && is_file($filename) && is_writable($filename)) {  
                 $contents = file_get_contents($filename);                 
                 // echo $contents;exit;  
                 $contents = php_strip_whitespace($filename);                 
                 // echo $contents;exit;
                 // $headerPos = strpos($contents,&#39;<?php&#39;);
                 // echo $headerPos;exit;


                 // $contents = substr($contents, $headerPos + 5, $footerPos - $headerPos);
                 // echo $contents;
                 exit;
                 $data = openssl_encrypt($contents, &#39;AES-256-CBC&#39;, $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->hex_iv));                 
                 // echo $data;exit;
                 $data = base64_encode($data);                
                  // echo $data;exit;
                 return file_put_contents($filename, $data);  
            }  
                 return false;  
    }    /*
    * 字符串解密
    */
    public function decrypt($input)
    {
        $decrypted = openssl_decrypt(base64_decode($input), &#39;AES-256-CBC&#39;, $this->key, OPENSSL_RAW_DATA, $this->hexToStr($this->hex_iv));        
        return $decrypted;
    }    /*
      For PKCS7 padding
     */

    private function addpadding($string, $blocksize = 16) {

        $len = strlen($string);        
        $pad = $blocksize - ($len % $blocksize);        
        $string .= str_repeat(chr($pad), $pad);        
        return $string;

    }    private function strippadding($string) {

        $slast = ord(substr($string, -1));        
        $slastc = chr($slast);        
        $pcheck = substr($string, -$slast);        
        if (preg_match("/$slastc{" . $slast . "}/", $string)) {            
        $string = substr($string, 0, strlen($string) - $slast);            
        return $string;

        } else {            
        return false;

        }

    }    
    function hexToStr($hex)
    {

        $string=&#39;&#39;;        
        for ($i=0; $i < strlen($hex)-1; $i+=2)

        {            
        $string .= chr(hexdec($hex[$i].$hex[$i+1]));

        }        
        return $string;
    }

}
$key = &#39;397e2eb61307109f6e68006ebcb62f98&#39;;
$aes = new Aes($key);
$filename = __DIR__.&#39;\exchange.php&#39;;
// $filename = &#39;Y6RCuF6ETPC5J57hfhxovg==&#39;;
// 加密
$string = $aes->filecrypt($filename);
// echo $string;
echo "OK,加密完成!" ;

2. PHPファイルを暗號(hào)化する簡(jiǎn)単な関數(shù)

<?php  

 function encode_file_contents($filename) {  
     $type=strtolower(substr(strrchr($filename,&#39;.&#39;),1));  
     if (&#39;php&#39; == $type && is_file($filename) && is_writable($filename)) { // 如果是PHP文件 并且可寫 則進(jìn)行壓縮編碼  
         $contents = file_get_contents($filename); // 判斷文件是否已經(jīng)被編碼處理  
         $contents = php_strip_whitespace($filename);   

         // 去除PHP頭部和尾部標(biāo)識(shí)  
         $headerPos = strpos($contents,&#39;<?php&#39;);  
         $footerPos = strrpos($contents,&#39;?>&#39;);  
         $contents = substr($contents, $headerPos + 5, $footerPos - $headerPos);  
         $encode = base64_encode(gzdeflate($contents)); // 開始編碼  
         $encode = &#39;<?php&#39;."\n eval(gzinflate(base64_decode("."&#39;".$encode."&#39;".")));\n\n?>";   

         return file_put_contents($filename, $encode);  
     }  
     return false;  
 }   

 //調(diào)用函數(shù)
 // echo __DIR__.&#39;\server.php&#39;;   
 $filename = __DIR__.&#39;\server.php&#39;;  
 encode_file_contents($filename);  
 echo "OK,加密完成!" ;

おすすめ関連記事:

phpのcurlでのpostモードとgetモードのリクエストコード

thinkphp5 で json オブジェクトを配列に変換する方法 (コード)

以上がPHP での AES 暗號(hào)化ファイルの解析 (コード付き)の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語 Web サイトの他の関連記事を參照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

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

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國(guó)語版

SublimeText3 中國(guó)語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Win10 Home Edition はフォルダー暗號(hào)化をサポートしていますか? Win10 Home Edition はフォルダー暗號(hào)化をサポートしていますか? Jan 09, 2024 am 08:58 AM

ファイル暗號(hào)化は、プロレベルのデータ暗號(hào)化を?qū)g裝して、データのセキュリティをより効果的に確保することを目的としています。正しい暗號(hào)化キーを習(xí)得することによってのみ復(fù)號(hào)化操作を?qū)g行できるため、情報(bào)資産のセキュリティが確保されます。ただし、Win10 Home Edition のファイル暗號(hào)化機(jī)能にはまだこの機(jī)能がありません。 Win10 Home Edition はフォルダーを暗號(hào)化できますか? 回答: Win10 Home Edition はフォルダーを暗號(hào)化できません。 Windows システムでのファイル暗號(hào)化に関するチュートリアル 1. 暗號(hào)化するファイルまたはフォルダーを右クリックし (またはしばらく押し続けて)、「プロパテ?!箼C(jī)能を選択します。 2. 新しい拡張されたインターフェースで、「詳細(xì)」オプションをクリックして入力した後、その下にある「コンテンツを暗號(hào)化してデータを保護(hù)する」オプションを忘れずにチェックしてください。 3. 設(shè)定が完了したら、「OK」をクリックしてください。

Win11 暗號(hào)化 DNS の詳細(xì)なチュートリアル Win11 暗號(hào)化 DNS の詳細(xì)なチュートリアル Dec 25, 2023 am 10:13 AM

Microsoft は以前、win11 用の DNS 暗號(hào)化サービスを提供していましたが、多くのユーザーは win11 の暗號(hào)化された DNS の使用方法を知りません。実際には、ネットワーク設(shè)定で DNS 設(shè)定を開くだけで済みます。 win11 暗號(hào)化 DNS に関する詳細(xì)なチュートリアル: 1. まずディスクに入り、暗號(hào)化するフォルダーを見つけます。 2. 次に、右側(cè)の「イーサネット」を開きます。 3. 次に、下の DNS サーバーの割り當(dāng)てを見つけて、「編集」をクリックします。 4. 「自動(dòng) (DHCP)」を「手動(dòng)」に変更した後、下の「IPv4」を開きます。 5. オンにしたら、優(yōu)先 DNS に「8.8.8.8」と入力します。 6. 次に、優(yōu)先 DNS 暗號(hào)化を「暗號(hào)化のみ (HTTPS 経由の DNS)」に変更します。 7. 変更が完了したら、「保存」をクリックすると、

winrar-winrar 暗號(hào)化圧縮パッケージ方式で圧縮パッケージを暗號(hào)化する方法 winrar-winrar 暗號(hào)化圧縮パッケージ方式で圧縮パッケージを暗號(hào)化する方法 Mar 23, 2024 pm 12:10 PM

エディターは、暗號(hào)化と圧縮の 3 つの方法を紹介します。 方法 1: 暗號(hào)化 最も簡(jiǎn)単な暗號(hào)化方法は、ファイルを暗號(hào)化するときに設(shè)定したいパスワードを入力することで、暗號(hào)化と圧縮が完了します。方法 2: 自動(dòng)暗號(hào)化 通常の暗號(hào)化方法では、各ファイルを暗號(hào)化するときにパスワードを入力する必要がありますが、多數(shù)の圧縮パッケージを暗號(hào)化する場(chǎng)合、パスワードが同じ場(chǎng)合は、WinRAR で自動(dòng)暗號(hào)化を設(shè)定できます。通常のようにファイルを圧縮すると、WinRAR は各圧縮パッケージにパスワードを追加します。方法は次のとおりです。 WinRAR を開き、設(shè)定インターフェイスで [オプション] - [設(shè)定] をクリックし、[圧縮] に切り替え、[デフォルト構(gòu)成の作成] - [パスワードの設(shè)定] をクリックします。 ここで設(shè)定したいパスワードを入力し、[OK] をクリックして設(shè)定を完了します。なおす

圧縮せずにフォルダーを暗號(hào)化するためのパスワードを設(shè)定する方法 圧縮せずにフォルダーを暗號(hào)化するためのパスワードを設(shè)定する方法 Feb 20, 2024 pm 03:27 PM

フォルダー暗號(hào)化は、フォルダーの內(nèi)容を暗號(hào)化して、復(fù)號(hào)化パスワードを持っている人だけがファイルにアクセスできるようにする一般的なデータ保護(hù)方法です。フォルダーを暗號(hào)化する場(chǎng)合、ファイルを圧縮せずにパスワードを設(shè)定する一般的な方法がいくつかあります。まず、オペレーティング システムに付屬の暗號(hào)化機(jī)能を使用して、フォルダーのパスワードを設(shè)定します。 Windowsユーザーの場(chǎng)合は、次の手順で設(shè)定できます。 暗號(hào)化するフォルダーを選択し、フォルダーを右クリックし、「プロパテ?!工蜻x択します。

win11 ファイル暗號(hào)化の完全ガイド win11 ファイル暗號(hào)化の完全ガイド Jan 09, 2024 pm 02:50 PM

ファイルを保護(hù)したいが、Win11 ドキュメントを暗號(hào)化する方法がわからない友人もいます。実際、フォルダー暗號(hào)化を直接使用するか、サードパーティ ソフトウェアを使用してファイルを暗號(hào)化できます。 win11 ドキュメント暗號(hào)化に関する詳細(xì)なチュートリアル: 1. まず、暗號(hào)化するファイルを見つけて右クリックして選択し、[プロパティ] を開きます。 2. 次に、プロパティ列の [詳細(xì)] をクリックします。 3. [コンテンツを暗號(hào)化してデータを保護(hù)する] を選択します。 4. 次に、「OK」をクリックして保存します。 5. 最後に、希望の暗號(hào)化モードを選択し、「OK」をクリックして文書を保存し、文書を暗號(hào)化します。

Apple攜帯電話でフォトアルバムの暗號(hào)化を設(shè)定する方法 Apple攜帯電話でフォトアルバムの暗號(hào)化を設(shè)定する方法 Mar 02, 2024 pm 05:31 PM

Apple の攜帯電話では、ユーザーは自分のニーズに応じてフォト アルバムを暗號(hào)化できます。設(shè)定方法がわからないユーザーもいます。暗號(hào)化が必要な寫真をメモに追加し、メモをロッ??クすることができます。次に、編集者がユーザー向けにモバイル フォト アルバムの暗號(hào)化を設(shè)定する方法を紹介します。興味のあるユーザーは、ぜひご覧ください。 Apple 攜帯電話チュートリアル iPhone フォト アルバム暗號(hào)化の設(shè)定方法 A: 暗號(hào)化する必要がある寫真をメモに追加した後、メモをロッ??クして詳細(xì)を説明します。 1. フォト アルバムに入り、暗號(hào)化する必要がある寫真を選択します。暗號(hào)化されたものを選択し、下の[追加]をクリックします。 2. [ノートに追加]を選択します。 3. メモを入力し、作成したメモを見つけて入力し、右上隅の [送信] アイコンをクリックします。 4. 下の[デバイスをロック]をクリックします

CentOS における Vim テキストの暗號(hào)化と復(fù)號(hào)化方法の詳細(xì)な紹介 CentOS における Vim テキストの暗號(hào)化と復(fù)號(hào)化方法の詳細(xì)な紹介 Dec 31, 2023 pm 02:49 PM

CentOS は vim/vi を使用してファイルの暗號(hào)化と復(fù)號(hào)化を行います 1. vim/vi を使用して暗號(hào)化します: 利點(diǎn): 暗號(hào)化後、パスワードがわからない場(chǎng)合は、root ユーザーを含むプレーン テキストを表示できません; 欠點(diǎn): 明らかです。他の人は暗號(hào)化を知っています, コンテンツの破棄や削除を含む, 暗號(hào)化されたファイルを他の人が破棄するのは簡(jiǎn)単です; 私は誰もが vi エディターに精通していると思います. vi にはファイルを暗號(hào)化するコマンドがあります. 例: 1) まず、 root マスター 実験用ファイル text.txt をディレクトリ /root/ に作成します: [root@www~]#vim/vitext.txt2) 編集モードに入り、內(nèi)容を入力した後に ESC キーを押して、次のように入力します: X (大文字に注意してください) X)、入力; 3)

暗號(hào)通貨のベテランによる新プロジェクト、Analog: 1,600萬ドルを調(diào)達(dá)、エアドロップも予定 暗號(hào)通貨のベテランによる新プロジェクト、Analog: 1,600萬ドルを調(diào)達(dá)、エアドロップも予定 Feb 22, 2024 pm 04:50 PM

原著者: Meteor、ChainCatcher 原編集者: Marco、ChainCatcher 最近、フルチェーン相互運(yùn)用性プロトコルである Analog が 1,600 萬米ドルの資金調(diào)達(dá)を明らかにし、注目を集めています 投資機(jī)関には TribeCapital、NGCVentures、Wintermute、GSR、NEAR、OrangeDAO が含まれます、マイク?ノボグラッツ氏のオルタナティブ資産管理會(huì)社サマラ?アセット?グループ、バラジ?スリニバサンなど。 2023 年末、Analog は業(yè)界で興奮を引き起こし、X プラットフォームでのオープン テストネット登録イベントに関する情報(bào)をリリースしました。

See all articles