* 参考网址:https://www.php.net/manual/zh/function.openssl-encrypt.php
* ------------------------------------------------------------------------------------------------------
* 加解密方法 method
* AES-128-CBC (16位Key, 16位iv)
* AES-192-CBC (24位Key, 16位iv)
* AES-256-CBC (32位Key, 16位iv)
* AES-128-ECB (16位Key)
* AES-192-ECB (24位Key)
* AES-256-ECB (32位Key)
* ------------------------------------------------------------------------------------------------------
* openssl_簇 options
* 0 : 默认模式,自动对数据做 pkcs7 填充, 且返回的加密数据经过 base64 编码
* 1 : OPENSSL_RAW_DATA, 自动对数据做 pkcs7 填充, 且返回的加密数据未经过 base64 编码
* 2 : OPENSSL_ZERO_PADDING, 处理使用 NUL("\0") 的数据,故需手动使用 NUL("\0") 填充好数据再做加密处理,如未做则会报错
* --------------------------------------------------------------------------------------------------------
class
Encrypt
* var string $method 加解密方法,可通过openssl_get_cipher_methods()获得
private
$method
;
* var string $secret_key 加解密的密钥
private
$key
;
* var string $iv 加解密的向量,有些方法需要设置比如CBC
private
$iv
;
* var string $options (不知道怎么解释,目前设置为0没什么问题)
private
$options
;
* 构造函数
* @param string $key 密钥
* @param string $method 加密方式
* @param mixed $options openssl_簇
* @param string $iv iv向量
public
function
__construct
(
$key
=
'ajiSecretKey2020'
,
$method
=
'AES-128-ECB'
,
$options
=
0
,
$iv
=
''
)
$this
-
>
key
=
$key
;
$this
-
>
method
=
$method
;
$this
-
>
options
=
$options
;
$this
-
>
iv
=
$iv
;
public
function
setKey
(
$key
)
$this
-
>
key
=
$key
;
public
function
setMethod
(
$method
)
$this
-
>
method
=
$method
;
public
function
setOptions
(
$options
)
$this
-
>
options
=
$options
;
public
function
setIv
(
$iv
)
$this
-
>
iv
=
$iv
CBC
(Cipher Block Chaining,
加密
块链) 模式、
ECB(Electronic Code Book,电子密码本) 模式
加密
结果包含:十六进制、base64
补码方式:PKCS5Padding
密钥长度:128、192、256
CBC
(Cipher Block Chaining,
加密
块链) 模式、
ECB(Electronic Code Book,电子密码本) 模式
加密
结果包含:十六进制、base64
补码方式:PKCS5Padding
密钥长度:128、192、256
java
php
c#
三种
语言
的
AES
加密
互转
最近做的项目中有一个领取优惠券的功能,项目是用
php
写得,不得不佩服,
php
自带的方法简洁而又方便好用。项目是为平台为其他公司发放优惠券,结果很囧的是接了三家优惠券公司,一家
php
,一家
java
,一家
c#
,下面就是整理出来的
三种
语言
的
加密解密
方法:
简单介绍一下这里踩过的坑,最开始没有意识到不同的
语言
对
加密
实现的差别,服务端这里实现使用的ECB...
Domain: hlwblj.fz-xxx.com
Type: dns
Detail: No valid IP addresses found for hlwblj.fz-xx.com
[/code]
将VolGroup-lv_home缩小到20G,并将剩余的空间添加给VolGroup-lv_root
等一个猿份:
解决pdf.js无法再ios设备中打开的问题
解决pdf.js无法再ios设备中打开的问题