php AES 加解密方法使用函數了解
1、php中關於mcrypt加密的一些函式
1)mcrypt_get_iv_size — 返回指定演算法/模式組合的初始向量大小
int mcrypt_get_iv_size ( string $cipher , string $mode )
2)mcrypt_list_algorithms – mcrypt支援的加密演算法列表
3)mcrypt_list_modes() – mcrypt支援的加密模式列表
php中預設沒有mcrypt擴充套件,檢測是否支援mcrypt
$cipher_list = mcrypt_list_algorithms();//mcrypt支援的加密演算法列表
$mode_list = mcrypt_list_modes(); //mcrypt支援的加密模式列表
echo '<xmp>';
print_r($cipher_list);
print_r($mode_list);
若支援,輸出結果為:
Array
(
[0] => cast-128
[1] => gost
[2] => rijndael-128
[3] => twofish
[4] => cast-256
[5] => loki97
[6] => rijndael-192
[7] => saferplus
[8] => wake
[9] => blowfish-compat
[10] => des
[11] => rijndael-256
[12] => serpent
[13] => xtea
[14] => blowfish
[15] => enigma
[16] => rc2
[17] => tripledes
[18] => arcfour
)
Array
(
[0] => cbc
[1 ] => cfb
[2] => ctr
[3] => ecb
[4] => ncfb
[5] => nofb
[6] => ofb
[7] => stream
)
其中rijndael-128,rijndael-192,rijndael-256就是AES加密,3種分別是使用不同的資料塊和金鑰長度進行加密
4)hash_hmac — 使用 HMAC 方法生成帶有金鑰的雜湊值
5)hash_algos — 返回已註冊的雜湊演算法列表
<?php
print_r(hash_algos());
?>
輸出結果為:
Array
(
[0] => md2
[1] => md4
[2] => md5
[3] => sha1
[4] => sha224
[5] => sha256
[6] => sha384
[7] => sha512
[8] => ripemd128
[9] => ripemd160
[10] => ripemd256
[11] => ripemd320
[12] => whirlpool
[13] => tiger128,3
[14] => tiger160,3
[15] => tiger192,3
[16] => tiger128,4
[17] => tiger160,4
[18] => tiger192,4
[19] => snefru
[20] => snefru256
[21] => gost
[22] => adler32
[23] => crc32
[24] => crc32b
[25] => salsa10
[26] => salsa20
[27] => haval128,3
[28] => haval160,3
[29] => haval192,3
[30] => haval224,3
[31] => haval256,3
[32] => haval128,4
[33] => haval160,4
[34] => haval192,4
[35] => haval224,4
[36] => haval256,4
[37] => haval128,5
[38] => haval160,5
[39] => haval192,5
[40] => haval224,5
[41] => haval256,5
)
2、laravel通過mcrypt PHP 的擴充套件提供的AES-256加密元件
Crypt::encrypt($str);//加密
Crypt::decrypt($encryptedValue);//解密
注意: 確認在 app/config/app.php 檔案設定了一個32隨機字元給 key 項。否則,加密的值是不安全的。
laravel中 Encrypter類中定義的一些初始變數
protected $key;
protected $cipher = 'rijndael-256';
protected $mode = 'cbc';
protected $block = 32;
public function __construct($key)
{
$this->key = $key;
}
可設定在encrypter中使用的cipher 和 mode:
Crypt::setMode('crt');//加密模式
Crypt::setCipher($cipher);//加密演算法
laravel中使用AES加密示例:
$str = 'xiaoming';
Crypt::setMode('ecb');
Crypt::setCipher('rijndael-128');
$s = Crypt::encrypt($str);
echo $s;die;
結果為:
eyJpdiI6IkpjUEJKcHUyNGpmaWxRTURXXC9DN1R3PT0iLCJ2YWx1ZSI6IkZDRDNZKzQ3WGV2QVhaVkJEcXMyRzA0c3luTlE4ZGIxaTFzTzZpanhUU289IiwibWFjIjoiOTI2MDY4OGIwNGRkM2MwZWI4YzdkMTI4MDBhNmJlZDBmM2YwYmQzN2Y5ZWRhMDhiZmRjN2ZiYjYwNmEzZmI0YSJ9
相關推薦
php AES 加解密方法使用函數了解
1、php中關於mcrypt加密的一些函式 1)mcrypt_get_iv_size — 返回指定演算法/模式組合的初始向量大小 int mcrypt_get_iv_size ( string $cipher , string $mode ) 2)mc
PHP——AES加解密 +SIGN校驗唯一性安全性(Api)
在這裡插入圖片描述 sign(客戶端和服務端約定的加盟方式) 驗籤每次http請都放在header中 Header中放一些基礎的引數 比如sign , version 版本號 , app_type 客戶端型別 model:手機型別 小米 華為… sign如何生成? 1:AE
STL random_shuffle 洗牌函數了解一下
洗牌函式的含義就是將資料打亂順序,測試程式碼如下: #include <iostream> #include <algorithm> #include <vector> #include <string> #include <random
Python小白進階——bisect函數了解一下
""" bisect 為可排序序列提供二分查詢演算法 """ import bisect #使用bisect函式前需要對列表進行排序,否則雖然可以輸出數值,但沒有意義 a = [1, 5, 6, 10, 9] a.sort() print("最初的列表:",
node總結之回撥函數了解下
Node.js的非同步程式設計的直接體現就是回撥,其中,非同步程式設計依託於回撥來實現,但不能說使用了回撥後程序就非同步化了。回撥函式在完成任務後就會被呼叫,Node 使用了大量的回撥函式,Node 所有 API 都支援回撥函式。例如,我們可以一邊讀取檔案,一邊執行其他命令,
遞歸函數(了解)
深圳 sql pre 應用 style 了解 是否 set user def func1(): print(111) print("www") func1() # 111 # www import sys print(sys.getrecursionli
Opencv 基本函數了解2
CvMat* cvCreateMat(int rows, int cols, int type); type: 矩陣元素型別. 格式為CV_<bit_depth>(S|U|F)C<number_of_channels>. 例如: CV_8UC1 表示8位無符號單通道矩陣, CV_32S
PHP函數詳解:call_user_func()使用方法
func instead 實例 div style bsp color can this call_user_func函數類似於一種特別的調用函數的方法,使用方法如下: <?php function nowamagic($a,$b) { echo
PHP知識點--方法函數
函數名 類型 都是 變量 span 系統 變量名 直接 -s 一、基本使用1、函數定義形式function 函數名 (形參1,形參2,.... ){//函數體(代碼塊)}?函數調用流程分析o開始調用:實際參數傳數據給形式參數o程序執行流程進入到函數中(一個獨立的運行空間)
php實現的三個常用加密解密功能函數示例
htm 常用 zab rand unlock ret == UNC test 目錄 算法一: 算法二: 算法三(改進第一個加密之後的算法) 本文實例講述了php實現的三個常用加密解密功能函數。分享給大家供大家參考,具體如下: 算法一: //加密函數 function
PHP利用openssl整理AES加解密類
<?php /** * Created by PhpStorm. * User: nassir * Date: 2017/12/11 * Time: 15:25 */ namespace Ryanc\RSA; class AES {
ThinkPHP函數詳解:F方法
過濾 thinkphp 子目錄 讀取 數據緩存 文件 快速 由於 寫入 我們已體味了ThinkPHP中的S編制的用法,F編制其實是S編制的一個子集功用,僅用於復雜數據緩存,而且只能支撐文件方式,不支撐緩存有用期,由於采取的是PHP前往編制,所以其效率較S編制較高,是以我
AES加解密
ext ole gen public 去掉 ati 默認 cal algo public class AESHelper { /// <summary> /// 獲取密鑰 /// </summar
PHP英文字母大小寫轉換函數小結
字符串 content 字符轉換 class 文字 單詞 con 英文 code 每個單詞的首字母轉換為大寫:ucwords() 代碼如下: <?php$foo = ‘hello world!‘;$foo = ucwords($foo); /
[PHP] 重回基礎Array相關函數
cti oss bcg sheng ger aix ubi air del C%E8%AF%AD%E8%A8%80--%E9%80%9A%E7%94%A8%E7%B1%BB%E5%9E%8B%E7%9A%84swap%E5%87%BD%E6%95%B0%E5%92%8C%E
php面向對象構造函數,析構函數
數值 其它 truct 垃圾 不能 書寫 屬性和方法 顯示調用 cto 在php面向對象中有構造函數和析構函數 構造函數使用__construct()書寫,它允許開發者在一個類中定義一個方法作為構造函數,具有構造函數的類會在每次創建新對象時先調用此方法,所以適合在使用對象之
PHP 圖像居中裁剪函數
set 根據 居中 res 圖像 break iss int 文件 /** * 居中裁剪圖片 * @param string $source [原圖路徑] * @param int $width [設置寬度] * @param int $height [設置高度]
18)添加引號轉移函數,防止SQL註入
factor isset art .com md5 ati 出錯 pri 取數據 目錄機構: 然後我的改動代碼: MysqlDB.class.php 1 <?php 2 3 /** 4
PHP 3DES 加解密(CBC模式,pkcs5padding填充)
ner ech scm blog input 3des解密 tde 結合 rip 1、前言:項目中接入第三方支付遇到3DES加密,以前也沒用過,搜了好多,都不適用,各種不對,後來自己結合搜到的終於弄正確了,檢測地址:http://tool.chacuo.net/crypt3
PHP的array_walk和array_map函數實現數組值UTF-8轉GBK編碼
for php false 2gb fun foreach () clas 內部 在PHP中,array_walk() 和 array_map()兩個函數都可以實現對數組中每個值的修改,比如本例就是將數組中所有的值,由UTF-8編碼轉成GBK編碼。 當然,除了這兩個函數,也