php Aes 128位算法
<?php
class Mcrypt
{
private static $key = "fsdjfojojodjiovjojgfosdjfiojio";
private static $iv = "y5v8s/N6PHurb/tqcwt4uw==";
//private static $key = "!AS39(#al*%";
//private static $iv = "sjA34kd9)_+"; /**
* cookie解密
* @author zhaozhongyi
* $encryptedData 二进制的密文;
*/
public static function Decrypt($encryptedData) {
if(empty($encryptedData))
{
return $encryptedData;
}
$encryptedData = base64_decode($encryptedData); $keyv = base64_decode(self::$key);
$ivv = base64_decode(self::$iv);
$data = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $keyv, $encryptedData, MCRYPT_MODE_CBC, $ivv);
//echo "<br/>data = ";
//print_r($data);
$data = self::stripPKSC7Padding($data);
//echo "<br/>data = ";
//print_r($data);
return $data;
} /**
* cookie加密
* @author zhaozhongyi
* $encryptedData 需加密字符;
*/
public static function Ecrypt($encryptedData) {
if(empty($encryptedData))
{
return $encryptedData;
}
//echo "<br/>encryptedData = ";
//echo $encryptedData;
$encryptedText = self::paddingPKCS7($encryptedData);
//echo "<br/>encryptedText = ";
//echo $encryptedText;
$keyv = base64_decode(self::$key);
$ivv = base64_decode(self::$iv);
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $keyv, $encryptedText, MCRYPT_MODE_CBC, $ivv));
} /**
* PKSC7解密算法
*/
private static function stripPKSC7Padding($string){
if(empty($string))
{
return $string;
}
$slast = ord(substr($string, -));
$slastc = chr($slast);
$pcheck = substr($string, -$slast);
if(preg_match("/$slastc{".$slast."}/", $string)){
$string = substr($string, , strlen($string)-$slast);
return $string;
} else {
return false;
}
} /**
* PKSC7加密算法
*/
private static function paddingPKCS7($data)
{
if(empty($data))
{
return $data;
}
$block_size = mcrypt_get_block_size('rijndael-128', 'cbc');
$padding_char = $block_size - (strlen($data) % $block_size);
$data .= str_repeat(chr($padding_char), $padding_char);
return $data;
}
}
php Aes 128位算法的更多相关文章
- AES加密算法-128位高安全,高速度
网上资料显示,下一代加密技术会围绕着AES技术进行.初出茅庐,学习编写了加密代码,如下所示 package com.bao.tools.encryption; import java.security ...
- aes 128、192、256位,cbc、cfb、ecb、ofb、pcbc加密解密
AES加解密总共有以下这些 算法/模式/填充 字节加密后数据长度 不满16字节加密后长度 AES/CBC/NoPadding 16 不支持 AES/CBC/PKCS5Padding 32 16 AES ...
- C# 128位AES 加密解密 (转)
/// AES加密 2 /// </summary> 3 /// <param name="inputdata">输入的数据 ...
- .NET AES加解密(128位)
AES加密(128位): /// <summary> /// 有密码的AES加密 /// </summary> internal static string Encrypt(s ...
- php AES cbc模式 pkcs7 128位加密解密(微信小程序)
PHP AES CBC模式PKCS7 128位加密 加密: $key = '1234567812345678'; $iv = '1234567890123456'; $message = '12345 ...
- 参考别人的代码写的aes加密,记录一下(AES,ECB模式,填充PKCS5Padding,数据块128位,偏移量无,以hex16进制输出)
package org.jimmy.autosearch2019.test; import java.security.SecureRandom; import javax.crypto.Cipher ...
- C# AES的128位、192位、256位加密
C# AES的128位.192位.256位加密 AES加密原理,这里就不解释了,自行百度.这里主要细说AES的CBC加密模式下的128位.192位.256位加密区别,参考 对称加密和分组加密中的四 ...
- 【Android工具】DES终结者加密时报——AES加密演算法
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在前面的两篇文章中.我们介绍了DES算法,3DES算法以及他们的Android程序实现,并研究了怎样才干实现 ...
- AES加解密算法Qt实现
[声明] (1) 本文源码 在一位未署名网友源码基础上,利用Qt编程,实现了AES加解密算法,并添加了文件加解密功能.在此表示感谢!该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 除图1外 ...
随机推荐
- ★Java语法(二)——————————数据类型常见问题
1.用float型定义变量:float a = 3.14 :是否正确? 不正确.“=” 两边的精度类型不匹配,应为:float a =(float)3.14 或 float a =3.14F 或 ...
- DNN:逻辑回归与 SoftMax 回归方法
UFLDL Tutorial 翻译系列:http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial 第四章:SoftMax回归 简介: ...
- std::string格式化输入输出
在C语言中: C函数有sprintf函数, 比较方便, 但是需要知道所需要的内存空间是多少. 在C++的框架MFC中: 在MFC中CString 有Format函数来格式化字符串. 很方便. 难过的是 ...
- 读书笔记「Python编程:从入门到实践」_10.文件和异常
10.1 从文件中读取数据 10.1.1 读取整个文件 with open(~) as object: contents=object.read() with open('C:/Users/jou/ ...
- dispatch_sync
dispatch_sync does two things: queue a block blocks the current thread until the block has finished ...
- Coreldraw软件反盗版提示x8有优惠活动 cdr x8提示盗版怎么办?
CorelDRAW X8装不上,我的悲伤有这么大,或者比这还大一点...♥♥♥如果你遇到这样的断了网,卸了装,装了卸,然后再安装的...╮(-_-)╭这样的保存和另存为都点不了,不敢关电脑的亦或是这样 ...
- PAT_A1113#Integer Set Partition
Source: PAT A1113 Integer Set Partition (25 分) Description: Given a set of N (>) positive integer ...
- kvm介绍、安装及创建虚拟机
kvm虚拟化介绍 一.虚拟化分类 1.虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立 ...
- 数据结构总结(UPDATING......)
目标: 1.栈........√ 2.队列......√ 3.堆.........× 4.并查集...× 栈: #define MAXN 65536 struct stack{ int sz[MAXN ...
- 洛谷P1443 马的遍历【BFS】
题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘的大小和马的坐标 输出 ...