数据传输为什么需要加密
通常我们做一个Web应用程序的时候都需要登录,登录就要输入用户名和
登录密码,并且用户名和登录密码都是明文传输的,这样就有可能在中途被
别人拦截,尤其是在网吧等场合。
RSA数据加密技术
RSA算法属于非对称加密算法,非对称加密算法需要两
个密钥:公开密钥(publickey)和私有密钥(privatekey)。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加
密,只有用对应的私有密钥才能解密;如果用私有密钥对数
据进行加密,那么只有用对应的公开密钥才能解密。因为加
密和解密使用的是两个不同的密钥,所以这种算法叫作非对
称加密算法。简单的说是“公钥加密,私钥解密;私钥加密,
公钥解密”;
PHP实现数据加密解密
加密解密方法如下:
运行条件:1、需要的环境LAMP
2、需要给PHP打openssl模块
3、生成公钥和私钥链接 http://web.chacuo.net/netrsakeypair
/**
* RSA数据加密解密
* @param type $data
* @param type $type encode加密 decode解密
* RSA_public 公钥常量(需要自己去获取)
* RSA_private 私钥常量(需要自己去获取)
*/
function RSA_openssl($data, $type = ‘encode’) {
if (empty($data)) {
return ‘加密解密数据不能为空’;
}
if ($type == ‘encode’) {
$return = openssl_pkey_get_public(RSA_public);
if (!$return) {
die(‘公钥不可用’);
}
openssl_public_encrypt($data, $crypted, $return);
$crypted = base64_encode($crypted);
return $crypted;
}
if ($type == ‘decode’) {
$private_is_use = openssl_pkey_get_private(RSA_private);
if (!$private_is_use) {
die(‘私钥不可用’);
}
openssl_private_decrypt(base64_decode($data), $decrypted, $private_is_use);
return $decrypted;
}
转载请注明:XAMPP中文组官网 » POST和GET数据传输加密