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

php如何使用3des加解密及hmacsha256加密

 更新時(shí)間:2022年09月21日 11:45:54   作者:.周周  
因?yàn)楣ぷ髦幸玫郊用?接口中要求也是用密文傳輸數(shù)據(jù),用到3des加密,就研究了一下,下面這篇文章主要給大家介紹了關(guān)于php如何使用3des加解密及hmacsha256加密的相關(guān)資料,需要的朋友可以參考下

一、3des加解密

從PHP 7.2起它將被從核心代碼中移除并且移到PECL中。PHP手冊(cè)在7.1遷移頁(yè)面給出了替代方案,就是用OpenSSL取代MCrypt。

現(xiàn)整理PHP7.2中AES加密解密方法mcrypt_module_open()替換方案,以下為原加解密方法:

function encrypt($str) { 
         $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); 
         mcrypt_generic_init($td, $this->key, $this->hexToStr($this->hex_iv)); 
         $block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);  
        $pad = $block - (strlen($str) % $block);  
        $str .= str_repeat(chr($pad), $pad);  
        $encrypted = mcrypt_generic($td, $str); 
         mcrypt_generic_deinit($td); 
         mcrypt_module_close($td);  
        return base64_encode($encrypted);  
    } 
 
    function decrypt($code) {  
        $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');  
        mcrypt_generic_init($td, $this->key, $this->hexToStr($this->hex_iv));  
        $str = mdecrypt_generic($td, base64_decode($code));  
        $block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); 
         mcrypt_generic_deinit($td); 
        mcrypt_module_close($td); 
        return $this->strippadding($str); 
    }

替換后,新方法:

//加密
public function encrypt($data)
{
 
    if ($data== null || empty($data)) {
        return $data;
    }
    $secret_key = "your key";
    $iv = "your iv";
    $result= base64_encode(openssl_encrypt( $data, "aes-256-cbc", $secret_key, OPENSSL_RAW_DATA, $iv));
 
    return $result;
    
}
 
//解密
public function decode($data)
{
    if ($data== null || empty($data)) {
        return $data;
    }
    $secret_key = "your key";
    $iv = "your iv";
    $result= openssl_decrypt(base64_decode($data), "aes-256-cbc", $secret_key, OPENSSL_RAW_DATA, $iv);
 
    return $result;
   
}

加密方法:

openssl_encrypt($data, $method, $password, $options, $iv)

解密方法:

openssl_decrypt($data, $method, $password, $options, $iv)

參數(shù)說(shuō)明:

$data 加密明文

$method 加密方法

1、DES-ECB
2、DES-CBC
3、DES-CTR
4、DES-OFB
5、DES-CFB

$passwd 加密密鑰[密碼]

$options 數(shù)據(jù)格式選項(xiàng)(可選)【選項(xiàng)有:】

1、0
2、OPENSSL_RAW_DATA=1
3、OPENSSL_ZERO_PADDING=2
4、OPENSSL_NO_PADDING=3

$iv 密初始化向量(可選)

DES 是對(duì)稱性加密里面常見(jiàn)一種,是一種使用密鑰加密的塊算法。

二、hmacsha256加密

使用hash_hmac()

string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = false ] )

參數(shù)

algo

要使用的哈希算法名稱,例如:"md5","sha256","haval160,4" 等。 如何獲取受支持的算法清單,請(qǐng)參見(jiàn) hash_algos() 。

data

要進(jìn)行哈希運(yùn)算的消息。

key

使用 HMAC 生成信息摘要時(shí)所使用的密鑰。

raw_output

設(shè)置為 TRUE 輸出原始二進(jìn)制數(shù)據(jù), 設(shè)置為 FALSE 輸出小寫(xiě) 16 進(jìn)制字符串。

返回值

如果 raw_output 設(shè)置為 TRUE , 則返回原始二進(jìn)制數(shù)據(jù)表示的信息摘要, 否則返回 16 進(jìn)制小寫(xiě)字符串格式表示的信息摘要。 如果 algo 參數(shù)指定的不是受支持的算法,返回 FALSE 。

總結(jié)

到此這篇關(guān)于php如何使用3des加解密及hmacsha256加密的文章就介紹到這了,更多相關(guān)php用3des加解密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PHP mail 通過(guò)Windows的SMTP發(fā)送郵件失敗的解決方案

    PHP mail 通過(guò)Windows的SMTP發(fā)送郵件失敗的解決方案

    今天調(diào)試WordPress的郵件發(fā)送功能,總是提示:SMTP server response: 501 5.5.4 Invalid Address。用telnet測(cè)試SMTP是沒(méi)有任何問(wèn)題的
    2009-05-05
  • ExtJS與PHP、MySQL實(shí)現(xiàn)存儲(chǔ)的方法

    ExtJS與PHP、MySQL實(shí)現(xiàn)存儲(chǔ)的方法

    ExtJS與PHP、MySQL實(shí)現(xiàn)存儲(chǔ)的方法,需要的朋友可以參考下,里面有詳細(xì)的步驟。
    2010-04-04
  • 解析php file_exists無(wú)效的解決辦法

    解析php file_exists無(wú)效的解決辦法

    本篇文章是對(duì)php中file_exists無(wú)效的解決辦法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP5.2中date()函數(shù)顯示時(shí)間與北京時(shí)間相差8小時(shí)的解決辦法

    PHP5.2中date()函數(shù)顯示時(shí)間與北京時(shí)間相差8小時(shí)的解決辦法

    北京時(shí)間是東8區(qū),可能是時(shí)區(qū)問(wèn)題.但是此前都沒(méi)問(wèn)題啊,經(jīng)過(guò)google發(fā)現(xiàn)原來(lái)從php5.1.0開(kāi)始,php.ini里加入了 date.timezone這個(gè)選項(xiàng),默認(rèn)情況下是關(guān)閉的
    2009-05-05
  • php防止惡意刷新與刷票的方法

    php防止惡意刷新與刷票的方法

    這篇文章主要介紹了php防止惡意刷新與刷票的方法,實(shí)例匯總了常用的cookie方法、session方法及文本數(shù)據(jù)方法等,具有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11
  • Zend Framework中的簡(jiǎn)單工廠模式 圖文

    Zend Framework中的簡(jiǎn)單工廠模式 圖文

    某天又然后想到好久沒(méi)復(fù)習(xí)設(shè)計(jì)模式了。綜合一下,復(fù)習(xí)一個(gè)設(shè)計(jì)模式之后在ZF中找一下使用這模式的源碼吧,不讀所有源碼,讀讀比較”高級(jí)”的部分吧,要說(shuō)模式,暫時(shí)不知道是不是所有模式ZF里面都有,但是應(yīng)該有足夠的模式夠我最近看了,在說(shuō)可以找找其他開(kāi)源的軟件來(lái)找模式
    2012-07-07
  • PHPCMS遭遇會(huì)員投稿審核無(wú)效的解決方法

    PHPCMS遭遇會(huì)員投稿審核無(wú)效的解決方法

    本站的投稿平臺(tái)突然遇到會(huì)員投稿之后,主編在后臺(tái)審核功能失效的問(wèn)題,在網(wǎng)站上搜了半天也沒(méi)找到方法,先把小編的處理過(guò)程記錄下來(lái),分享給大家
    2017-01-01
  • PHP中define() 與 const定義常量的區(qū)別詳解

    PHP中define() 與 const定義常量的區(qū)別詳解

    這篇文章主要介紹了PHP中define() 與 const定義常量的區(qū)別,結(jié)合實(shí)例形式分析了php中使用define()與const定義常量的具體使用原理、技巧與相關(guān)用法區(qū)別,需要的朋友可以參考下
    2019-06-06
  • PHP操作數(shù)組的一些函數(shù)整理介紹

    PHP操作數(shù)組的一些函數(shù)整理介紹

    PHP中最常用到的數(shù)據(jù)結(jié)構(gòu)就是數(shù)組,數(shù)組可以幫我們解決很大一部分的編程問(wèn)題。其實(shí)有很多數(shù)組操作不用我們自己寫(xiě),系統(tǒng)已經(jīng)自帶了相關(guān)的函數(shù)了。下面我們介紹一些關(guān)于PHP數(shù)組操作的函數(shù),也許有些你沒(méi)有聽(tīng)說(shuō)過(guò)。
    2011-07-07
  • PHP串行化與反串行化實(shí)例分析

    PHP串行化與反串行化實(shí)例分析

    這篇文章主要介紹了PHP串行化與反串行化,結(jié)合實(shí)例形式分析了php面向?qū)ο蟪绦蛟O(shè)計(jì)及serialize與unserialize函數(shù)進(jìn)行串行化、反串行化相關(guān)使用技巧,需要的朋友可以參考下
    2016-12-12

最新評(píng)論

辉南县| 什邡市| 尤溪县| 东乡族自治县| 潜山县| 聂拉木县| 广水市| 徐水县| 二连浩特市| 阿瓦提县| 丹江口市| 措美县| 都兰县| 临湘市| 会泽县| 渭南市| 石林| 当涂县| 荔浦县| 叙永县| 江油市| 郓城县| 日照市| 镇平县| 徐水县| 沁阳市| 临汾市| 荔浦县| 古田县| 西藏| 连平县| 财经| 南澳县| 五家渠市| 新绛县| 金秀| 文登市| 崇州市| 宽城| 晋江市| 九江市|