成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP:mcrypt_encrypt()的用法_Mcrypt函數
全站頭部文字 我要出現在這里
PHP:mcrypt_encrypt()的用法_Mcrypt函數 771 2023-12-15   

mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_encrypt — 使用給定參數加密明文

說明

string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

加密數據并返回密文。

參數

cipher

MCRYPT_ciphername 常量中的一個,或者是字符串值的算法名稱。

key

加密密鑰。 如果其長度小于所需的長度,將在其后使用 '' 補齊。 建議不要使用 ASCII 字符作為密鑰。

建議使用 mhash 函數 從一個字符串中創(chuàng)建密鑰。

data

使用給定的 ciphermode 加密的數據。 如果數據長度不是 n*分組大小,則在其后使用 '' 補齊。

返回的密文長度可能比 data 更大。

mode

MCRYPT_MODE_modename 常量中的一個,或以下字符串中的一個:"ecb","cbc","cfb","ofb","nofb" 和 "stream"。

iv

在 CBC, CFB, OFB 模式中用于初始化過程,在 STREAM 模式中用于某些算法。如果未提供 IV 并且在某算法中需要,本函數發(fā)出一條警告并使用一個全部字節(jié)設為 "" 的 IV。

返回值

以字符串方式返回密文。

范例

Example #1 mcrypt_encrypt() 例程

<?php
    # --- 加密 ---

    # 密鑰應該是隨機的二進制數據,
    # 開始使用 scrypt, bcrypt 或 PBKDF2 將一個字符串轉換成一個密鑰
    # 密鑰是 16 進制字符串格式
    $key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");
    
    # 顯示 AES-128, 192, 256 對應的密鑰長度:
    #16,24,32 字節(jié)。
    $key_size =  strlen($key);
    echo "Key size: " . $key_size . "n";
    
    $plaintext = "This string was AES-256 / CBC / ZeroBytePadding encrypted.";

    # 為 CBC 模式創(chuàng)建隨機的初始向量
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    

    # 創(chuàng)建和 AES 兼容的密文(Rijndael 分組大小 = 128)
    # 僅適用于編碼后的輸入不是以 00h 結尾的
    # (因為默認是使用 0 來補齊數據)
    $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
                                 $plaintext, MCRYPT_MODE_CBC, $iv);

    # 將初始向量附加在密文之后,以供解密時使用
    $ciphertext = $iv . $ciphertext;
    
    # 對密文進行 base64 編碼
    $ciphertext_base64 = base64_encode($ciphertext);

    echo  $ciphertext_base64 . "n";

    # === 警告 ===

    # 密文并未進行完整性和可信度保護,
    # 所以可能遭受 Padding Oracle 攻擊。
    
    # --- 解密 ---
    
    $ciphertext_dec = base64_decode($ciphertext_base64);
    
    # 初始向量大小,可以通過 mcrypt_get_iv_size() 來獲得
    $iv_dec = substr($ciphertext_dec, 0, $iv_size);
    
    # 獲取除初始向量外的密文
    $ciphertext_dec = substr($ciphertext_dec, $iv_size);

    # 可能需要從明文末尾移除 0
    $plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
                                    $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);
    
    echo  $plaintext_dec . "n";
?>

以上例程會輸出:

Key size: 32
ENJW8mS2KaJoNB5E5CoSAAu0xARgsR1bdzFWpEn+poYw45q+73az5kYi4j+0haevext1dGrcW8Qi59txfCBV8BBj3bzRP3dFCp3CPQSJ8eU=
This string was AES-256 / CBC / ZeroBytePadding encrypted.

更高級的 API, 參見 mcrypt_module_open()。


主站蜘蛛池模板: 章子怡 罗曼蒂克消亡史| 巴不得妈妈| 张倩仪演过什么电视剧| 外国小哥街头索吻狂魔| 地理填充图册| 性色视频| 艾娜| 老板娘2| 天天操免费视频| 小丑回魂1| 手机拦截骚扰电话怎么设置| 彭丹露点| 康熙微服第二部免费版第24集| 想太多吉他谱| 极品电影网| 林东升| 《沉默的证人》电影| 幻乐森林演员表| 程门立雪文言文| 小淘气尼古拉| 二年级我是谁课文| 美少女战士奥特曼| 叶子楣地下裁决| cctv第一剧场频道| 铭旌写法大全范例| 吉泽明步作品| 赵汉善| 自拍在线观看| 成人在线| av在线看| 质量教育培训的首要内容是() (单选题)| 欧美日本视频在线| 蝴蝶视频在线观看| 男生变女生tg动画变身| 混沌行走| 许半夏电视剧在线观看| 动漫秀场| 小男孩王泓翔唱梨花颂| 素人片| 颂赞诗歌| 姨妈来之前的征兆有哪些|

!!!站長長期在線接!!!

網站、小程序:定制開發(fā)/二次開發(fā)/仿制開發(fā)等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103