最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP實現(xiàn)的AES 128位加密算法示例

 更新時間:2019年09月16日 11:22:15   作者:Json____  
這篇文章主要介紹了PHP實現(xiàn)的AES 128位加密算法,結(jié)合實例形式分析了AES 128位加密的相關(guān)概念、原理及php實現(xiàn)AES 128位加密的相關(guān)操作技巧,注釋中包含詳細的說明信息,需要的朋友可以參考下

本文實例講述了PHP實現(xiàn)的AES 128位加密算法。分享給大家供大家參考,具體如下:

/*
加密算法一般分為兩種:對稱加密算法和非對稱加密算法。
對稱加密
對稱加密算法是消息發(fā)送者和接收者使用同一個密匙,發(fā)送者使用密匙加密了文件,
接收者使用同樣的密匙解密,獲取信息。常見的對稱加密算法有:des/aes/3des.
對稱加密算法的特點有:速度快,加密前后文件大小變化不大,但是密匙的保管是個大問題
,因為消息發(fā)送方和接收方任意一方的密匙丟失,都會導(dǎo)致信息傳輸變得不安全。
非對稱加密
與對稱加密相對的是非對稱加密,非對稱加密的核心思想是使用一對相對的密匙
分為公匙和私匙,私匙自己安全保存,而將公匙公開。公鑰與私鑰是一對,如果用公鑰對數(shù)據(jù)進行加密,
只有用對應(yīng)的私鑰才能解密;如果用私鑰對數(shù)據(jù)進行加密,那么只有用對應(yīng)的公鑰才能解密發(fā)送數(shù)據(jù)前只需要使用接收方的公匙加密就行了。
常見的非對稱加密算法有RSA/DSA:非對稱加密雖然沒有密匙保存問題,但其計算量大,加密速度很慢,有時候我們還需要對大塊數(shù)據(jù)進行分塊加密。
數(shù)字簽名
為了保證數(shù)據(jù)的完整性,還需要通過散列函數(shù)計算得到一個散列值,這個散列值被稱為數(shù)字簽名。其特點有:
無論原始數(shù)據(jù)是多大,結(jié)果的長度相同的;
輸入一樣,輸出也相同;
對輸入的微小改變,會使結(jié)果產(chǎn)生很大的變化;
加密過程不可逆,無法通過散列值得到原來的數(shù)據(jù);
常見的數(shù)字簽名算法有md5,hash1等算法。
PHP的openssl擴展
openssl擴展使用openssl加密擴展包,封裝了多個用于加密解密相關(guān)的PHP函數(shù),極大地方便了對數(shù)據(jù)的加密解密。 常用的函數(shù)有:
對稱加密相關(guān):
string openssl_encrypt ( string $data , string $method , string $password)
其中$data為其要加密的數(shù)據(jù),$method是加密要使用的方法,$password是要使用的密匙,函數(shù)返回加密后的數(shù)據(jù);
其中$method列表可以使用openssl_get_cipher_methods()來獲取
其解密函數(shù)為 string openssl_encrypt ( string $data , string $method , string $password)
非對稱加密相關(guān):
它們都只需要傳入證書文件(一般是.pem文件);
使用公匙加密數(shù)據(jù),其中$data是要加密的數(shù)據(jù);$crypted是一個引用變量,加密后的數(shù)據(jù)會被放入這個變量中;$key是要傳入的公匙數(shù)據(jù);
由于被加密數(shù)據(jù)分組時,有可能不會正好為加密位數(shù)bit的整數(shù)倍,所以需要$padding(填充補齊),
$padding的可選項有 OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING,分別為PKCS1填充,或不使用填充;
簽名函數(shù):$data為要簽名的數(shù)據(jù);$signature為簽名結(jié)果的引用變量;$priv_key_id為簽名所使用的私匙;$signature_alg為簽名要使用的算法
,其算法列表可以使用openssl_get_md_methods()得到
驗簽函數(shù):與簽名函數(shù)相對,只不過它要傳入與私匙對應(yīng)的公匙;其結(jié)果為簽名驗證結(jié)果,1為成功,0為失敗,-1則表示錯誤;
 * */
/*
 * 基于百度云API的例子
 * 密碼一律采用AES 128位加密算法進行加密,用SK的前16位作為密鑰,
 * 加密后生成的二進制字節(jié)流需要轉(zhuǎn)成十六進制,并以字符串的形式傳到服務(wù)端
 * */
function aes128WithFirst16Char($adminPass, $secretAccessKey)
{
  $adminPass = pkcs5Pad($adminPass);
  //把key值截取成16位的
  $secretAccessKey = substr($secretAccessKey, 0, 16);
  //進行AES加密
  $crypted = openssl_encrypt($adminPass, 'AES-128-ECB', $secretAccessKey, OPENSSL_RAW_DATA);
  //把字符串轉(zhuǎn)換為16進制
  return bin2hex(substr($crypted, 0, 16));
}
//把密碼填充成16位
function pkcs5Pad($adminPass)
{
  $pad = 16 - (strlen($adminPass) % 16);
  return $adminPass . str_repeat(chr($pad), $pad);
}
echo aes128WithFirst16Char('加密的密碼','key值');

PS:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:

文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode

MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password

在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP數(shù)學運算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》及《php正則表達式用法總結(jié)

希望本文所述對大家PHP程序設(shè)計有所幫助。

相關(guān)文章

  • php下判斷數(shù)組中是否存在相同的值array_unique

    php下判斷數(shù)組中是否存在相同的值array_unique

    今天在改一個N久以前寫的程序 突然碰到一個問題 假設(shè)有一個數(shù)組$a中存在幾個value 我如何判斷這些value當中是否存在相同的值呢? 翻了好多資料,也問了兵哥哥,給我一些思路,想自己寫來著~~~ 還是不肯放棄百度,最后搞了一次,居然找到這么一個函數(shù) array_unique爽大了。
    2008-03-03
  • php記錄日志的實現(xiàn)代碼

    php記錄日志的實現(xiàn)代碼

    php記錄日志的實現(xiàn)代碼,主要分為幾種模式,需要的朋友可以參考下。
    2011-08-08
  • PHP實現(xiàn)上傳多圖即時顯示與即時刪除的方法

    PHP實現(xiàn)上傳多圖即時顯示與即時刪除的方法

    這篇文章主要介紹了PHP實現(xiàn)上傳多圖即時顯示與即時刪除的方法,結(jié)合實例形式分析了php針對圖片文件的預(yù)覽、上傳及刪除相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • WordPress中調(diào)試縮略圖的相關(guān)PHP函數(shù)使用解析

    WordPress中調(diào)試縮略圖的相關(guān)PHP函數(shù)使用解析

    這篇文章主要介紹了WordPress中調(diào)試縮略圖的相關(guān)PHP函數(shù)使用解析,包括使用set_post_thumbnail_size來調(diào)整縮略圖的大小,需要的朋友可以參考下
    2016-01-01
  • PHP STRING 陷阱原理說明

    PHP STRING 陷阱原理說明

    需要注意的時候,我們訪問數(shù)組的時候 都是使用方括號“[]”,string作為一個也可以使用操作符“[]”進行訪問。但是,需要注意的一點就是,訪問字符串時候,操作符“[]”中的內(nèi)容會被轉(zhuǎn)化為int類型的。
    2010-07-07
  • PDO的安全處理與事物處理方法

    PDO的安全處理與事物處理方法

    本篇文章主要介紹了PDO的安全處理與事物處理方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-10-10
  • php在數(shù)組中查找指定值的方法

    php在數(shù)組中查找指定值的方法

    這篇文章主要介紹了php在數(shù)組中查找指定值的方法,實例分析了php中array_search函數(shù)查找數(shù)組指定值的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • php版阿里大于(阿里大魚)短信發(fā)送實例詳解

    php版阿里大于(阿里大魚)短信發(fā)送實例詳解

    這篇文章主要介紹了php版阿里大于(阿里大魚)短信發(fā)送實現(xiàn)方法,結(jié)合實例形式分析了阿里大于短信發(fā)送接口的配置與使用技巧,需要的朋友可以參考下
    2016-11-11
  • php?ZipArchive解壓縮實現(xiàn)后臺管理升級問題詳解

    php?ZipArchive解壓縮實現(xiàn)后臺管理升級問題詳解

    php?ZipArchive可以說是php自帶的一個函數(shù)了,他可對對文件進行壓縮與解壓縮處理,但是使用此類之前我們必須在php.ini中把extension=php_zip.dll前面的分號有沒有去掉,然后再重啟Apache這樣才能使用這個類庫
    2022-12-12
  • php將mysql數(shù)據(jù)庫整庫導(dǎo)出生成sql文件的具體實現(xiàn)

    php將mysql數(shù)據(jù)庫整庫導(dǎo)出生成sql文件的具體實現(xiàn)

    下面是php將mysql數(shù)據(jù)庫整庫導(dǎo)出生成sql文件的詳細代碼,希望對大家在用php編程時備份數(shù)據(jù)有一定幫助
    2014-01-01

最新評論

沈丘县| 阿巴嘎旗| 南澳县| 寻甸| 镇远县| 万源市| 东阿县| 贺兰县| 隆林| 青铜峡市| 保亭| 巴楚县| 闻喜县| 亚东县| 五莲县| 犍为县| 綦江县| 加查县| 固始县| 泸州市| 淅川县| 宁津县| 太白县| 昭苏县| 榆林市| 霸州市| 阜新市| 阳江市| 宜昌市| 宜兴市| 玉林市| 衡南县| 卢湾区| 通化县| 迭部县| 连云港市| 浪卡子县| 长宁区| 临清市| 嵩明县| 盐源县|