PHP7及以上版本,AES加密解密。OPENSSL
PHP7版本对应的AES/ECB/PKCS5Padding算法。
class AES
{
public static function encrypt($data, $key) {
$data = openssl_encrypt($data, 'aes-128-ecb', base64_decode($key), OPENSSL_RAW_DATA);
return base64_encode($data);
}
public static function decrypt($data, $key) {
$encrypted = base64_decode($data);
return openssl_decrypt($encrypted, 'aes-128-ecb', base64_decode($key), OPENSSL_RAW_DATA);
}
}
AES/ECB/PKCS5Padding说明:
AES:加密算法
ECB:模式
PKCS5Padding:补码⽅式
注意:
以上代码对加密秘钥key做了base64编码,请根据实际情况设置,如需base64则使⽤,不需要则去掉。
AES加密算法简介:
⾼级加密标准
密码学中的⾼级加密标准(Advanced Encryption Standard,AES),⼜称⾼级加密标准Rijndael加密法,是美国联邦政府采⽤的⼀种区块加密标准。这个标准⽤来替代原先的DES,已经被多⽅分析且⼴为全世界所使⽤。经过五年的甄选流程,⾼级加密标准由美国国家标准与技术研究院(NIST)于2001年11⽉26⽇发布于FIPS PUB 197,并在2002年5⽉26⽇成为有效的标准。2006年,⾼级加密标准已然成为对称密钥加密中最流⾏的算法之⼀。
该算法为⽐利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijndael之命名之,投稿⾼级加密标准的甄选流程。(Rijdael的发⾳近于 "Rhinedoll"。)
⾼级数据加密标准
对称密码体制的发展趋势将以分组密码为重点。分组密码算法通常由密钥扩展算法和加密(解密)算法两部分组成。密钥扩展算法将b字节⽤户主密钥扩展成r个⼦密钥。加密算法由⼀个密码学上的弱函数f与r个⼦密钥迭代r次组成。混乱和密钥扩散是分组密码算法设计的基本原则。抵御已知明⽂的差分和线性攻击,可变长密钥和分组是该体制的设计要点。
AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。
AES的基本要求是,采⽤对称分组密码体制,密钥长度的最少⽀持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。1998年NIST开始AES第⼀轮分析、测试和征集,共产⽣了15个候选算法。1999年3⽉完成了第⼆轮AES2的分析、测试。2000年10⽉2⽇美国政府正式宣布选中⽐利时密码学家Joan Daemen 和 Vincent Rijmen 提出的⼀种密码算法RIJNDAEL 作为 AES.
在应⽤⽅⾯,尽管DES在安全上是脆弱的,但由于快速DES芯⽚的⼤量⽣产,使得DES仍能暂时继续使⽤,为提⾼安全强度,通常使⽤独⽴密钥的三级DES。但是DES迟早要被AES代替。流密码体制较之分组密码在理论上成熟且安全,但未被列⼊下⼀代加密标准。
AES加密数据块分组长度必须为128⽐特,密钥长度可以是128⽐特、192⽐特、256⽐特中的任意⼀个(如果数据块及密钥长度不⾜时,会补齐)。AES加密有很多轮的重复和变换。⼤致步骤如下:1、密钥扩展(KeyExpansion),2、初始轮(Initial
Round),3、重复轮(Rounds),每⼀轮⼜包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、最终轮(Final
Round),最终轮没有MixColumns。
ECB(Electronic Code Book电⼦密码本)模式
ECB模式是最早采⽤和最简单的模式,它将加密的数据分成若⼲组,每组的⼤⼩跟加密密钥长度相同,然后每组都⽤相同的密钥进⾏加密。
优点: 1.简单; 2.有利于并⾏计算; 3.误差不会被扩散;
php手机版下载缺点: 1.不能隐藏明⽂的模式; 2.可能对明⽂进⾏主动攻击;
因此,此模式适于加密⼩消息。
CBC(Cipher Block Chaining,加密块链)模式
优点: 不容易主动攻击,安全性好于ECB,适合传输长度长的报⽂,是SSL、IPSec的标准。
缺点: 1.不利于并⾏计算; 2.误差传递; 3.需要初始化向量IV
CFB(Cipher FeedBack Mode,加密反馈)模式
优点:
1.隐藏了明⽂模式;
2.分组密码转化为流模式;
3.可以及时加密传送⼩于分组的数据;
缺点: 1.不利于并⾏计算; 2.误差传送:⼀个明⽂单元损坏影响多个单元; 3.唯⼀的IV;
OFB(Output FeedBack,输出反馈)模式
优点: 1.隐藏了明⽂模式; 2.分组密码转化为流模式; 3.可以及时加密传送⼩于分组的数据;
缺点: 1.不利于并⾏计算; 2.对明⽂的主动攻击是可能的; 3.误差传送:⼀个明⽂单元损坏影响多个单元;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论