PHP進行AES/ECB/PKCS7 padding加密的例子
原文:https://www.cnblogs.com/lantor/p/7351372.html
<?php class AES { protected $cipher; protected $mode; protected $pad_method; protected $secret_key; protected $iv; public function __construct($key, $method = 'pkcs7', $iv = '', $mode = MCRYPT_MODE_ECB, $cipher = MCRYPT_RIJNDAEL_128) { $this->secret_key = $key; $this->pad_method =$method; $this->iv = $iv; $this->mode = $mode; $this->cipher = $cipher; } protected function pad_or_unpad($str, $ext) { if (!is_null($this->pad_method)) { $func_name = __CLASS__ . '::' . $this->pad_method . '_' . $ext . 'pad'; if (is_callable($func_name)) { $size = mcrypt_get_block_size($this->cipher, $this->mode); return call_user_func($func_name, $str, $size); } } return $str; } protected function pad($str) { return $this->pad_or_unpad($str, ''); } protected function unpad($str) { return $this->pad_or_unpad($str, 'un'); } public function encrypt($str) { $str = $this->pad($str); $td = mcrypt_module_open($this->cipher, '', $this->mode, ''); if (empty($this->iv)) { $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); } else { $iv = $this->iv; } mcrypt_generic_init($td, $this->secret_key, $iv); $cyper_text = mcrypt_generic($td, $str); $rt = base64_encode($cyper_text); mcrypt_generic_deinit($td); mcrypt_module_close($td); return $rt; } public function decrypt($str) { $td = mcrypt_module_open($this->cipher, '', $this->mode, ''); if (empty($this->iv)) { $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); } else { $iv = $this->iv; } mcrypt_generic_init($td, $this->secret_key, $iv); $decrypted_text = mdecrypt_generic($td, base64_decode($str)); $rt = $decrypted_text; mcrypt_generic_deinit($td); mcrypt_module_close($td); return $this->unpad($rt); } public static function pkcs7_pad($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } public static function pkcs7_unpad($text) { $pad = ord($text[strlen($text) - 1]); if ($pad > strlen($text)) return false; if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return false; return substr($text, 0, -1 * $pad); } } $aes = new AES('123456'); echo $aes->encrypt('憑欄知瀟雨'), '<br>'; // We2MEs6x595hkFvSwtS05g== echo $aes->decrypt('We2MEs6x595hkFvSwtS05g=='); // 憑欄知瀟雨
相關推薦
PHP進行AES/ECB/PKCS7 padding加密的例子
原文:https://www.cnblogs.com/lantor/p/7351372.html <?php class AES { protected $cipher; protected $mode; protected $pad_method; protected $secret_key; protected $iv; public function __construct($
PHP進行AES/ECB/PKCS7 padding加密的例子(openssl)
利用openssl加密更簡單,而且支援php7.1.x版本,基本可以用於所有版本的php程式。
C#.NET AES ECB 加密
加密: /// <summary> /// 加密 /// </summary> /// <param name=\"content\">要加密的串</param>
java實現AES/ECB/PKCS7Padding加密和解密
技術標籤:Java學習java加密解密演算法 工作中遇到AES演算法相關問題,進行一次記錄,如有問題,歡迎大家指出~
php之Aes加密案例講解
在專案中,尤其是pc端的時候,我們在使用者登入後會給前端返回一個標識,來判斷使用者是否登入,這個標識大多數都是使用者的id
前端進行AES加密介面進行解密
我這裡使用的是\"crypto-js\": \"4.0.0\" 1.在 axios.interceptors.response.use 返回介面中進行解密
node.JS的crypto加密模組使用方法詳解(MD5,AES,Hmac,Diffie-Hellman加密)
node.JS的加密模組crypto提供了 HTTP 或 HTTPS 連線過程中封裝安全憑證的方法。也提供了 OpenSSL 的雜湊,hmac,加密(cipher),解密(decipher),簽名(sign) 和 驗證(verify) 方法的封裝
PHP基於openssl實現非對稱加密程式碼例項
使用非對稱加密主要是藉助openssl的公鑰和私鑰,用公鑰加密私鑰解密,或者私鑰加密公鑰解密。
Python實現AES的CBC模式加密和解密過程詳解 和 chr() 函式 和 s[a:b:c] 和函式lambda
1、chr()函式 chr() 用一個範圍在 range(256)內的(就是0~255)整數作引數,返回一個對應的字元。
aes-cbc-ebc的加密解密
from Cryptodome.Cipher import AES from binascii import a2b_base64, b2a_base64 import base64 \'\'\' ECB沒有偏移量
AES上傳檔案加密下載檔案解密(完整,附助手實體類)
首先可以自定義實體類,祕鑰是最重要的,不要透露給任何人,來看助手類 public class AesHelper
C# 對含有向量偏移的明文進行AES加解密
直接上程式碼: using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography;
Laravel 對某一列進行篩選然後求和sum()的例子
這個例子是對課程進度表裡面的某個學生的剩餘課時進行求和彙總。 laravel 版本是 lts 5.5
golang的aes, ecb加解密
技術標籤:go 參考連結:https://www.cnblogs.com/techone/p/11771928.html 目錄 1.安裝庫 2.用法
Oracle進行資料庫欄位內容加密和解密
技術標籤:oracle 自定義函式的方式: -- 加密函式 CREATE OR REPLACE function ds_func_encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
Node Java相互使用AES-128-ECB對資料進行加密解密實現
技術標籤:Java前端(js/jsp/html/vue...)加密解密AES-128-ECBnode.js 目錄 Node程式碼Java程式碼
如何在PHP中使用AES加密演算法加密資料
在研究Discuz 的時候,發現Discuz有一套相當完美的加密演算法(相對而言)。這個演算法可以將資料加密後,儲存起來,到需要用的時候,用之前加密的祕鑰將之還原。
(JS-PHP)使用RSA演算法進行加密通訊
轉自:https://www.cnblogs.com/flowers-yang/p/3522350.html 使用者名稱密碼明文直接POST到後端,很容易被別人從監聽到。注:包括使用MD5等雜湊函式處理後的資料,這裡也算做明文(現在MD5爆破網站已經很多了~)。
Node Java相互使用AES-256-CBC對資料進行加密解密實現
技術標籤:Java前端(js/jsp/html/vue...)加密解密node.jsAES-256-CBC 目錄 Node程式碼Java程式碼
PHP加密-AES
AES是Advanced Encryption Standard(高階加密標準)的縮寫,在密碼學中又稱Rijndael加密發,是美國聯邦政府採用的一種區塊加密標準。