日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 使用3des加解密、hmacsha256加密

發布時間:2023/12/20 php 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 使用3des加解密、hmacsha256加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、3des加解密

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

現整理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)
參數說明:

$data 加密明文

$method 加密方法

1、DES-ECB
2、DES-CBC
3、DES-CTR
4、DES-OFB
5、DES-CFB
$passwd 加密密鑰[密碼]

$options 數據格式選項(可選)【選項有:】

1、0
2、OPENSSL_RAW_DATA=1
3、OPENSSL_ZERO_PADDING=2
4、OPENSSL_NO_PADDING=3
$iv 密初始化向量(可選)

DES 是對稱性加密里面常見一種,是一種使用密鑰加密的塊算法。

二、hmacsha256加密

使用hash_hmac()

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


參數

algo

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

??? 要進行哈希運算的消息。
key

??? 使用 HMAC 生成信息摘要時所使用的密鑰。
raw_output

??? 設置為 TRUE 輸出原始二進制數據, 設置為 FALSE 輸出小寫 16 進制字符串。

返回值

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

總結

以上是生活随笔為你收集整理的php 使用3des加解密、hmacsha256加密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。