AES加解密
AES加密类
- <?php
- //php aes加密类
- class AESMcrypt {
- public $iv = null;
- public $key = null;
- public $bit = ;
- private $cipher;
- public function __construct($bit, $key, $iv, $mode) {
- if(empty($bit) || empty($key) || empty($iv) || empty($mode))
- return NULL;
- $this->bit = $bit;
- $this->key = $key;
- $this->iv = $iv;
- $this->mode = $mode;
- switch($this->bit) {
- case :$this->cipher = MCRYPT_RIJNDAEL_192; break;
- case :$this->cipher = MCRYPT_RIJNDAEL_256; break;
- default: $this->cipher = MCRYPT_RIJNDAEL_128;
- }
- switch($this->mode) {
- case 'ecb':$this->mode = MCRYPT_MODE_ECB; break;
- case 'cfb':$this->mode = MCRYPT_MODE_CFB; break;
- case 'ofb':$this->mode = MCRYPT_MODE_OFB; break;
- case 'nofb':$this->mode = MCRYPT_MODE_NOFB; break;
- default: $this->mode = MCRYPT_MODE_CBC;
- }
- }
- public function encrypt($data) {
- $data = base64_encode(mcrypt_encrypt( $this->cipher, $this->key, $data, $this->mode, $this->iv));
- return $data;
- }
- public function decrypt($data) {
- $data = mcrypt_decrypt( $this->cipher, $this->key, base64_decode($data), $this->mode, $this->iv);
- $data = rtrim(rtrim($data), "..");
- return $data;
- }
- }
- //使用方法
- $aes = new AESMcrypt($bit = , $key = 'abcdef1234567890', $iv = '0987654321fedcba', $mode = 'cbc');
- $c = $aes->encrypt('haowei.me');
- var_dump($aes->decrypt($c));
demo
- <?php
- require_once('./AES.php');
- //$aes = new AES();
- $aes = new AES(true);// 把加密后的字符串按十六进制进行存储
- //$aes = new AES(true,true);// 带有调试信息且加密字符串按十六进制存储
- $key = "this is a 32 byte key";// 密钥
- $keys = $aes->makeKey($key);
- $encode = "";// 被加密的字符串
- $ct = $aes->encryptString($encode, $keys);
- echo "encode = ".$ct."<br>";
- $cpt = $aes->decryptString($ct, $keys);
- echo "decode = ".$cpt;
- ?>
AES加解密的更多相关文章
- DES,AeS加解密,MD5,SHA加密
1.DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复, ...
- c# Aes加解密和对象序列化
aes加解密 public class AesCryptto { private string key = "hjyf57468jhmuist"; private string i ...
- Java、C#双语版配套AES加解密示例
这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己,正巧遇上需要AES加解密的地方了,而且还是Java和C#间的相互加解密操作,这里做个备忘 这里采用的加解 ...
- AES加解密算法Qt实现
[声明] (1) 本文源码 在一位未署名网友源码基础上,利用Qt编程,实现了AES加解密算法,并添加了文件加解密功能.在此表示感谢!该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 除图1外 ...
- aes加解密 Illegal key size
做aes加密时,发生一个奇怪的错误,在本地环境是好的,发布到测试环境就出问题, java.security.InvalidKeyException: Illegal key size 想到本地环境之前 ...
- C# RSA加解密与验签,AES加解密,以及与JAVA平台的密文加解密
前言: RSA算法是利用公钥与密钥对数据进行加密验证的一种算法.一般是拿私钥对数据进行签名,公钥发给友商,将数据及签名一同发给友商,友商利用公钥对签名进行验证.也可以使用公钥对数据加密,然后用私钥对数 ...
- Aes加解密,php
Aes类库 <?php namespace Aes; class Aes { /** * var string $method 加解密方法,可通过openssl_get_cipher_metho ...
- cryptoJS AES 加解密简单使用
简单记录一下,前端利用 cryptoJS 如何加解密的.主要是关于 AES 加解密. 需求描述:需要对 url 中的参数进行 AES 解密,然后再把该参数进行 MD5 加密通过接口传递. AES AE ...
- AES加解密程序的实现
AES加解密程序的实现正常情况,用户不能访问sys.dbms_crypto,需要DBA授权:grant execute on dbms_crypto to crm;建立加解密的PKG_AES包:CRE ...
- 收银台数据库存储AES加解密
高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合.缺点是密钥的传输 ...
随机推荐
- 20155323 2016-2017-2 《Java程序设计》第8周学习总结
20155323 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 日志API:使用日志的起点是Logger类,要取得Logger类,必须使用Logger的静态 ...
- python3 openpyxl基本操作
#coding:utf-8 import xlrd import xlwt # 读写2007 excel import openpyxl import sys #读取设备sn # def readSN ...
- vs2013突然没有代码提示功能了。
工具->选项->文本编辑器->C++ ->高级->禁用IntelliSense设置 false 然后选确定.
- 转-Python自然语言处理入门
Python自然语言处理入门 原文链接:http://python.jobbole.com/85094/ 分享到:20 本文由 伯乐在线 - Ree Ray 翻译,renlytime 校稿.未经许 ...
- appium -ios-安卓 获取元素时 配置参数的方法
iPhone_5S{ "automationName": "XCUITest", "platformName": "iOS&quo ...
- 除去a标签target="_blank"的方法
用Jquery:$(function(){$("div>a").attr("target","_blank");});先查找页面上的d ...
- [Android] 开发第十一天
MainActivity.java 代码如下: package com.oazzz.test9; import android.support.annotation.Nullable; import ...
- Hive 查看日志
日志记录了程序运行的过程,是一种查找问题的利器. Hive中的日志分为两种1. 系统日志,记录了hive的运行情况,错误状况.2. Job 日志,记录了Hive 中job的执行的历史过程. 系统日志存 ...
- ubuntu 16.04安装ibus中文输入法
1. 安装IBus sudo apt-get install ibus-pinyin system settings——>language support——>keyboard input ...
- Creating an Android Project(创建一个android项目)
一个android项目包含了你的应用程序中的所有源代码文件,我们可以通过android sdk tools轻松地创建一个拥有默认文件跟文件夹的android项目. 这部分课程我们将展示两种创建andr ...