AES加密类

  1. <?php
  2.  
  3. //php aes加密类
  4. class AESMcrypt {
  5. public $iv = null;
  6. public $key = null;
  7. public $bit = ;
  8. private $cipher;
  9. public function __construct($bit, $key, $iv, $mode) {
  10. if(empty($bit) || empty($key) || empty($iv) || empty($mode))
  11. return NULL;
  12. $this->bit = $bit;
  13. $this->key = $key;
  14. $this->iv = $iv;
  15. $this->mode = $mode;
  16. switch($this->bit) {
  17. case :$this->cipher = MCRYPT_RIJNDAEL_192; break;
  18. case :$this->cipher = MCRYPT_RIJNDAEL_256; break;
  19. default: $this->cipher = MCRYPT_RIJNDAEL_128;
  20. }
  21. switch($this->mode) {
  22. case 'ecb':$this->mode = MCRYPT_MODE_ECB; break;
  23. case 'cfb':$this->mode = MCRYPT_MODE_CFB; break;
  24. case 'ofb':$this->mode = MCRYPT_MODE_OFB; break;
  25. case 'nofb':$this->mode = MCRYPT_MODE_NOFB; break;
  26. default: $this->mode = MCRYPT_MODE_CBC;
  27. }
  28. }
  29. public function encrypt($data) {
  30. $data = base64_encode(mcrypt_encrypt( $this->cipher, $this->key, $data, $this->mode, $this->iv));
  31. return $data;
  32. }
  33. public function decrypt($data) {
  34. $data = mcrypt_decrypt( $this->cipher, $this->key, base64_decode($data), $this->mode, $this->iv);
  35. $data = rtrim(rtrim($data), "..");
  36. return $data;
  37. }
  38. }
  39. //使用方法
  40. $aes = new AESMcrypt($bit = , $key = 'abcdef1234567890', $iv = '0987654321fedcba', $mode = 'cbc');
  41. $c = $aes->encrypt('haowei.me');
  42. var_dump($aes->decrypt($c));

demo

  1. <?php
  2.  
  3. require_once('./AES.php');
  4. //$aes = new AES();
  5. $aes = new AES(true);// 把加密后的字符串按十六进制进行存储
  6. //$aes = new AES(true,true);// 带有调试信息且加密字符串按十六进制存储
  7. $key = "this is a 32 byte key";// 密钥
  8. $keys = $aes->makeKey($key);
  9. $encode = "";// 被加密的字符串
  10. $ct = $aes->encryptString($encode, $keys);
  11. echo "encode = ".$ct."<br>";
  12. $cpt = $aes->decryptString($ct, $keys);
  13. echo "decode = ".$cpt;
  14. ?>

AES加解密的更多相关文章

  1. DES,AeS加解密,MD5,SHA加密

    1.DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复, ...

  2. c# Aes加解密和对象序列化

    aes加解密 public class AesCryptto { private string key = "hjyf57468jhmuist"; private string i ...

  3. Java、C#双语版配套AES加解密示例

      这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己,正巧遇上需要AES加解密的地方了,而且还是Java和C#间的相互加解密操作,这里做个备忘 这里采用的加解 ...

  4. AES加解密算法Qt实现

    [声明] (1) 本文源码 在一位未署名网友源码基础上,利用Qt编程,实现了AES加解密算法,并添加了文件加解密功能.在此表示感谢!该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 除图1外 ...

  5. aes加解密 Illegal key size

    做aes加密时,发生一个奇怪的错误,在本地环境是好的,发布到测试环境就出问题, java.security.InvalidKeyException: Illegal key size 想到本地环境之前 ...

  6. C# RSA加解密与验签,AES加解密,以及与JAVA平台的密文加解密

    前言: RSA算法是利用公钥与密钥对数据进行加密验证的一种算法.一般是拿私钥对数据进行签名,公钥发给友商,将数据及签名一同发给友商,友商利用公钥对签名进行验证.也可以使用公钥对数据加密,然后用私钥对数 ...

  7. Aes加解密,php

    Aes类库 <?php namespace Aes; class Aes { /** * var string $method 加解密方法,可通过openssl_get_cipher_metho ...

  8. cryptoJS AES 加解密简单使用

    简单记录一下,前端利用 cryptoJS 如何加解密的.主要是关于 AES 加解密. 需求描述:需要对 url 中的参数进行 AES 解密,然后再把该参数进行 MD5 加密通过接口传递. AES AE ...

  9. AES加解密程序的实现

    AES加解密程序的实现正常情况,用户不能访问sys.dbms_crypto,需要DBA授权:grant execute on dbms_crypto to crm;建立加解密的PKG_AES包:CRE ...

  10. 收银台数据库存储AES加解密

    高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合.缺点是密钥的传输 ...

随机推荐

  1. 20155323 2016-2017-2 《Java程序设计》第8周学习总结

    20155323 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 日志API:使用日志的起点是Logger类,要取得Logger类,必须使用Logger的静态 ...

  2. python3 openpyxl基本操作

    #coding:utf-8 import xlrd import xlwt # 读写2007 excel import openpyxl import sys #读取设备sn # def readSN ...

  3. vs2013突然没有代码提示功能了。

    工具->选项->文本编辑器->C++ ->高级->禁用IntelliSense设置 false 然后选确定.

  4. 转-Python自然语言处理入门

      Python自然语言处理入门 原文链接:http://python.jobbole.com/85094/ 分享到:20 本文由 伯乐在线 - Ree Ray 翻译,renlytime 校稿.未经许 ...

  5. appium -ios-安卓 获取元素时 配置参数的方法

    iPhone_5S{ "automationName": "XCUITest", "platformName": "iOS&quo ...

  6. 除去a标签target="_blank"的方法

    用Jquery:$(function(){$("div>a").attr("target","_blank");});先查找页面上的d ...

  7. [Android] 开发第十一天

    MainActivity.java 代码如下: package com.oazzz.test9; import android.support.annotation.Nullable; import ...

  8. Hive 查看日志

    日志记录了程序运行的过程,是一种查找问题的利器. Hive中的日志分为两种1. 系统日志,记录了hive的运行情况,错误状况.2. Job 日志,记录了Hive 中job的执行的历史过程. 系统日志存 ...

  9. ubuntu 16.04安装ibus中文输入法

    1. 安装IBus sudo apt-get install ibus-pinyin system settings——>language support——>keyboard input ...

  10. Creating an Android Project(创建一个android项目)

    一个android项目包含了你的应用程序中的所有源代码文件,我们可以通过android sdk tools轻松地创建一个拥有默认文件跟文件夹的android项目. 这部分课程我们将展示两种创建andr ...