boaPHP开发手册v5.5

加密解密

详情参见 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