1. 程式人生 > >PHP7 openssl 實現 AES/ECB/PKCS5Padding加密

PHP7 openssl 實現 AES/ECB/PKCS5Padding加密

class CryptAES
{
   /**
     * var string $method 加解密方法,可通過openssl_get_cipher_methods()獲得
     */
    protected $method;

    /**
     * var string $secret_key 加解密的金鑰
     */
    protected $secret_key;

    /**
     * var string $iv 加解密的向量,有些方法需要設定比如CBC
     */
    protected $iv;

    /**
     * var string $options (不知道怎麼解釋,目前設定為0沒什麼問題)
     */
protected $options; /** * 建構函式 * * @param string $key 金鑰 * @param string $method 加密方式 * @param string $iv iv向量 * @param mixed $options 還不是很清楚 * */ public function __construct($key, $method = 'AES-128-ECB', $iv = '', $options = 0) { // key是必須要設定的
$this->secret_key = isset($key) ? $key : exit('key為必須項'); $this->method = $method; $this->iv = $iv; $this->options = $options; } /** * 加密方法,對資料進行加密,返回加密後的資料 * * @param string $data 要加密的資料 * * @return string * */
public function encrypt($data) { return openssl_encrypt($data, $this->method, $this->secret_key, $this->options, $this->iv); } /** * 解密方法,對資料進行解密,返回解密後的資料 * * @param string $data 要解密的資料 * * @return string * */ public function decrypt($data) { return openssl_decrypt($data, $this->method, $this->secret_key, $this->options, $this->iv); } }

相關推薦

PHP7 openssl 實現 AES/ECB/PKCS5Padding加密

class CryptAES { /** * var string $method 加解密方法,可通過openssl_get_cipher_methods()獲得 */ protected $method; /**

JS實現AES/ECB/PKCS5Padding加密,MD5摘要作為key

庫用的是CryptoJSv3.1.2,這裡面遇到一些坑。 1.引用問題。 呼叫這個庫,老是報錯,查來查去,原來跟檔案引用的順序有關,程式碼如下 <!-- DO NOT CHANGE THE POSITION OF THE FILE BELOW- AES r

vue中使用AES加密AES/ECB/PKCS5Padding

       前端專案中遇到需要對登入密碼進行AES/ECB/PKCS5Padding加密,然後呼叫登入介面,傳入密碼,使用者名稱。現將實現方法,記錄下來。 第一步: 安裝crypto-js         vue專案中執行npm install crypto-js --

node.js AES/ECB/PKCS5Padding 與其他語言的加密解密通用

轉載:http://yijiebuyi.com/blog/13e2ae33082ac12ba4946b033be04bb5.html 關於什麼是AES? 需要自己goole瞭解一下,今天就是簡單和大家分享node.js下使用 AES/ECB/PKCS5Padding 如

java加密AES/ECB/PKCS5Padding

廢話不多說,直接上程式碼 1.先建立一個base64編碼類, 實際專案中不用自己寫,有成熟的實現方法 package com.taikang; public final class Base64 { static private final in

golang實現aes-cbc-256加密解密過程記錄

generic 返回 hint pie follow strong pri hms 加密解密 我為什麽吃撐了要實現go的aes-cbc-256加密解密功能? 之前的項目是用php實現的,現在準備用go重構,需要用到這個功能,這麽常用的功能上網一搜一大把現成例子,於是基於g

AES/CBC/PKCS5Padding加密

package io.swagger.util; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.c

java實現AES的簡單加密解密

AESUtil package com.zhuyun.aes; import java.io.IOException; import javax.crypto.Cipher; import ja

Java利用 AES/ECB/PKCS5Padding 演算法加解密

Java利用  AES/ECB/PKCS5Padding 演算法加解密。 package com.newland.njwpayment.utils;   import javax.crypto.Cipher;   import javax.crypto.spec.

Java使用Hutool實現AES、DES加密解密

介紹 AES和DES同屬對稱加密演算法,資料發信方將明文(原始資料)和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在

PHP7——openssl函式替換mcrypt函式加密解密方法

最近專案的php版本需要升級到php7,但是專案裡遺留了很多廢棄函式,其中比較“難纏”的就是mcrypt函式的替代方法了,找了很久,終於有了解決方法。 官方:mcrypt 擴充套件已經過時了大約

Golang實現AES/CBC/PKCS5Padding演算法

使用golang實現AES演算法很簡單,系統庫中已自帶了CBC、CFB等等許多加密模式,而且可以很方便的設定IVPara,但是前幾日在做AES加密時,發現傳入的key必須是128bit、192bit或256bit,記得當時用Java實現的時候並沒有這個問題。AES中的key的

DES/ECB/PKCS5Padding 加密解密演算法

/* * 加密 */ public static String EncryptString(String strText, String sKey) { // MD5加密 // String md5s = EncryptMD5.g

實現 base64+gzip+AES-ECB加密解密

實現base64+gzip+AES-ECB加密解密 # 本程式碼基於python3.6.1測試通過 import base64 from Crypto.Cipher import AES from io import StringIO import gzip ''' 採用AES對稱加密演算法 '''

C++呼叫openssl實現DES加密解密cbc模式 zeropadding填充方式 pkcs5padding填充方式 pkcs7padding填充方式

==============================================     des   cbc  加密 zeropadding填充方式 ============================================== //加密 cbc ze

AES ECB加密實現(java/php/python)

這裡做個一個加密實現的記錄,方便以後查詢 AES加密 ECB模式 PKCS5填充 128位密碼/密碼塊 ECB模式是將明文按照固定大小的塊進行加密的,塊大小不足則進行填充。ECB模式沒有用到向量。 python 實現 # -*- coding=u

Linux下使用opensslAES加密-ECB模式

最近需要用到AES加密,為了圖方便就打算使用openssl自帶的AES加密演算法的API來實現。 主要用到了ECB和CBC兩種加密模式。 ECB模式如下: #include <stdio

aNDROID實現aEs加密技術

android java .com and androi aid ava lis 加密 JaVa%E9%9D%A2%E8%AF%95%E7%AC%94%E8%AF%95%E9%A2%98%E5%A4%A7%E6%B1%87%E6%80%BB%282%29 http://m

使用pyaes測試AES-ECB 加密解密示例

odi pytho 通信協議 文件 wid log this class there   最近在搞一個藍牙鎖,通信協議說是使用的標準AES-ECB加密、解密,無奈我測試的時候,加密後的數據和通信協議文檔給的數據不一致,懷疑文檔寫的aes-ecb傳參是否swap了or非標準A

C# 實現AES加密--解密

bsp 密文 rem adding gets manage string sys cipher /// <summary> /// AES 加密 /// </summary> ///