php aes padding,PHP中的AES算法
AES算法加密模式和填充方式有如下一些(可能不完整)
算法/模式/填充 16字节加密后数据长度 不满16字节加密后长度 AES/CBC/NoPadding 16 不支持 AES/CBC/PKCS5Padding 32 16 AES/CBC/ISO10126Padding 32 16 AES/CFB/NoPadding 16 原始数据长度 AES/CFB/PKCS5Padding 32 16 AES/CFB/ISO10126Padding 32 16 AES/ECB/NoPadding 16 不支持 AES/ECB/PKCS5Padding 32 16 AES/ECB/ISO10126Padding 32 16 AES/OFB/NoPadding 16 原始数据长度 AES/OFB/PKCS5Padding 32 16 AES/OFB/ISO10126Padding 32 16 AES/PCBC/NoPadding 16 不支持 AES/PCBC/PKCS5Padding 32 16 AES/PCBC/ISO10126Padding 32 16
利用PHP加密库 mcrypt 进行AES/CBC/NoPadding模式加密解密
$cipher = MCRYPT_RIJNDAEL_128;
$mode = MCRYPT_MODE_CBC;
$privateKey = "abcfdef123456";
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$mode),MCRYPT_RAND);
$data = "Hello world!";
//加密
$encrypted = mcrypt_encrypt($cipher, $privateKey, $data, $mode, $iv);
$based_encrypted = base64_encode($encrypted);
echo $based_encrypted;
//解密
$encryptedData = base64_decode($based_encrypted);
//解密后右端会有空白字符 需要手动清除 猜测是mcrypt的一个BUG
$decrypted = rtrim(mcrypt_decrypt($cipher, $privateKey, $encryptedData, $mode, $iv),"\0");
echo ($decrypted);
?>
为了方便与其他语言进行数据交换,也可以手动指定 $iv 为一个固定的可见字符串,但是长度要与 mcrypt_create_iv 生成的一致,否则会报一个
The IV parameter must be as long as the blocksize in 的警告。这里的长度是16,所以固定的字符串常量也要是16个字符。
PS : 可以用下面的代码来检测系统是否安装了 mcrypt 模块,并查看支持哪些加密算法和模式
$cipher_list = mcrypt_list_algorithms();//mcrypt支持的加密算法列表
$mode_list = mcrypt_list_modes(); //mcrypt支持的加密模式列表
print_r($cipher_list);
print_r($mode_list);
?>
得到输出结果:
Array
(
[0] => cast-128
[1] => gost
[2] => rijndael-128
[3] => twofish
[4] => arcfour
[5] => cast-256
[6] => loki97
[7] => rijndael-192
[8] => saferplus
[9] => wake
[10] => blowfish-compat
[11] => des
[12] => rijndael-256
[13] => serpent
[14] => xtea
[15] => blowfish
[16] => enigma
[17] => rc2
[18] => tripledes
)
Array
(
[0] => cbc
[1] => cfb
[2] => ctr
[3] => ecb
[4] => ncfb
[5] => nofb
[6] => ofb
[7] => stream
)
其中 rijndael-128,rijndael-192,rijndael-256都是AES算法。当然,你如果想研究AES算法,也可以自己用PHP实现该算法,否则没有必要,使用健壮的库函数是最快捷最方便最稳固的方法。
php aes padding,PHP中的AES算法相关推荐
- python2.x和3.x为什么不兼容_Python中使用AES算法(解决Python2.x和3.x下运行不兼容问题)...
两年前使用python时,碰到2.x下AES加密解密算法代码无法在3.x下顺利运行,花点时间解决了兼容问题,在2.7.3.6.3.7下运行良好. Linux系统安装依赖库比较简单,Windows下稍嫌 ...
- Python中的AES加解密算法
AES加密的参数及其条件:这个AES加密的主要坑就在于这些条件,首先AES加密有几个参数 秘钥:加密的时候用秘钥,解密的时候需要同样的秘钥才能解出来 明文:需要加密的内容 模式:aes 加密常用的有E ...
- java aes 工具类_Java中的AES加解密工具类:AESUtils
本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...
- Android中的AES加密-下
本文为笔记,记录,写记录后为了方便查阅也为了能更好的记住 参考 什么是AES算法? 前言 本章主要是针对AES加密的原理过程进行梳理.不在于细节,了解各个参数和类的功能来帮助我们再加密是更好的选择如何 ...
- [译] 最佳安全实践:在 Java 和 Android 中使用 AES 进行对称加密
原文地址:Security Best Practices: Symmetric Encryption with AES in Java and Android 最佳安全实践:在 Java 和 Andr ...
- Android+Java中使用Aes对称加密的工具类与使用
场景 Android+Java中使用RSA加密实现接口调用时的校验功能: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/11146 ...
- 使用as3crypto在Flex中实现AES加密
要在Flex中实现AES加密,可以通过as3crypto实现.但是as3crypto本身的用法比较复杂,一般是封装一下再调用. 下面是9RIA上的一篇文章给出的一个实现,使用中稍感不方便(见注释): ...
- SpringBoot+Vue中使用AES进行加解密(加密模式等对照关系)
场景 若依前后端分离版本地搭建开发环境并运行项目的教程: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客 在上面搭建起来前后端架构之后,在前后端分别进行AES方式的 ...
- Python中的AES加密
文章目录 AES 加密 一.前言 1. 简介 2. 加密模式 3. 环境配置 二.算法实现 AES 加密 一.前言 1. 简介 AES,高级加密标准(Advanced Encryption Stand ...
最新文章
- 机器也学会如何做「阅读理解」了? 云从科技上交大提出的DCMN+ 模型为你解答!!!...
- Facebook参与AI芯片设计大混战!
- 将war包发布到测试服的常用命令
- spring boot报错:Unable to start embedded Tomcat server 权限不够
- android 4个点矫正不规则矩形_Android使用FragmentTabHost实现中间按钮凸出效果
- 久违的反省,容忍现在的自己
- MogDB/openGauss 生态工具-MTK(Migration ToolKit) 数据库迁移
- XamlWriter-将对象树写入Xaml
- css与jquery、图标字体、常用数据
- Java对接微信、支付宝、银联第三方支付
- python双色球代码_python实现双色球随机选号
- Linux系统Ubuntu安装kvaser Leaf Light V2驱动
- 使用Robot Framework实现多平台自动化测试
- 如何修改MySQL监听IP地址
- Android 精华 - 收藏全集 -
- Maven下载、安装与配置
- 20200717——python 复习 一
- windows phone 7开发日志(正题二,字体)
- 桶排序基数排序代码及简要说明
- Java类加载,垃圾收集
热门文章
- 中学计算机教育特点,新课标理念下的高中信息技术教学特点及问题分析
- 图数据库有哪些优点?
- 盘点用jQuery框架实现“for循环”的四种方式!
- 随机森林原始论文_【20107】喜讯|朱波同学论文被制冷与空调期刊录用
- Flink部署——高可用
- 股行者【龙虎榜小红牛分析系统5.4】发布时间2020年06月29日
- 你的华为手机升级EMUI10,电量变得不耐用?那是这3个功能没开吧
- 华为android os耗电90%,华为的新系统耗电快?原来是这些设置没关,1键关闭即可多用1天...
- 智慧职教解决方案-最新全套文件
- 云电脑用流量玩快吗?