加密解密
详情参见 crypt类
对称加密
加密和解密采用相同方式,主要是openssl_get_cipher_methods()函数支持的方式,比如 aes等
加密方法:enc();解密方法:dec()
$crypt = boa::crypt();
$crypt->cfg('iv', '12345');
$str = $crypt->enc('boaPHP is so easy');
$str = $crypt->dec($str); // boaPHP is so easy
非对称加密
加密和解密采用互斥方式,比如 rsa,公钥加密则用对应的私钥解密,反之亦然
公钥加密:public_enc();私钥解密:private_dec()
私钥加密:private_enc();公钥解密:public_dec()
$crypt = boa::crypt();
$str = $crypt->public_enc('boaPHP is so easy');
$str = $crypt->private_dec($str); // boaPHP is so easy
$str = $crypt->private_enc('boaPHP就这么简单');
$str = $crypt->public_dec($str); // boaPHP就这么简单
签名验签
为了保护数据的完整性,有时需要对数据附加签名
私钥签名:sign();公钥验签:verify()
$crypt = boa::crypt();
$key = base64_encode($crypt->sign('boaPHP is so easy'));
$res = $crypt->verify('boaPHP is so easy', base64_decode($key));
证书生成
下载OpenSSL,进入安装目录中bin目录,在命令行中执行以下命令,将公钥、私钥放到 BS_VAR .'crypt'目录下,如使用带密码的私钥,需要配置 pripass 项
= 生成私钥
openssl genrsa -out D:/prikey.pem
= 生成带密码的私钥
openssl genrsa -des3 -out D:/prikey_pass.pem
= 生成10年期自签证书
openssl req -new -x509 -key D:/prikey.pem -out D:/cacert.pem -days 3650
= 从私钥生成公钥
openssl rsa -in D:/prikey.pem -inform pem -pubout -out D:/pubkey.pem