openlss/lib-crypt

PHP-Mcrypt提供的AES加密的简短库

0.0.10 2013-04-17 21:51 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:37:02 UTC


README

PHP-Mcrypt提供的AES加密的简短库

使用方法

use \LSS\Crypt;

//create keys
$iv_key = Crypt::IVCreate();
$crypt_key = Crypt::keyCreate();

$crypt = Crypt::_get($crypt_key,$iv_key);
$crypted_str = $crypt->encrypt('my string'); //returns base64 encoded crypted string
$var = $crypt->decrypt($crypted_str); //returns 'my string'

填充

默认情况下,MCrypt会将字符串NULL-PAD以获得正确的加密。然而,这会在期望精确有效负载加密(如二进制数据)时造成问题

Crypt通过在返回的字符串中存储有效负载的大小(前4个字节)来处理这个问题。然后Crypt提取这个大小,并在解密时将有效负载修剪到原始大小

缺点是,如果没有首先移除前4个字节,它不能通过常规的MCrypt函数进行解密。建议如果可能的话,修剪有效负载

参考

(string) Crypt::IVCreate()

返回加密类型的正确初始化向量

(string) Crypt::keyCreate()

返回加密类型的正确密钥

(object) Crypt::_get($key,$iv)

返回新对象的构造简写

(object) Crypt::setKey($key)

在运行时更改密钥 返回 $this 以实现链式调用

(object) Crypt::setIV($iv)

在运行时更改IV 返回 $this 以实现链式调用

(object) Crypt::verify()

验证密钥和IV,在出错时抛出异常 返回 $this 以实现链式调用

(string) Crypt::encrypt($plain_string,$base64_encode=true)

  • $plain_string 要加密的字符串
  • $base64_encode 设置为TRUE则对加密字符串进行base64编码 返回加密的字符串,可选的base64编码字符串

(string) Crypt::decrypt($enc_string,$base64_decode=true)

  • $enc_string 要解密的加密字符串
  • $base64_decode 如果$enc_string是base64编码的,设置为TRUE 返回精确的原始字符串