加密定义在暗码学中,加密(英语:Encryption)是将明文信息改变为难以读取的密文内容,使之不可读的过程。仅有持有解密办法的对象,经由解密过程,才可将密文还原为正常可读的内容。加密技术的重点是加密算法,加密算法重点分为三类: 对叫作加密非对叫作加密不可逆加密对叫作加密算法
1. 加密过程将明文分成N个组,而后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最后的密文。2. 优点算法公开、计算量小、加密速度快、加密效率高3.缺点交易双方都运用一样钥匙,安全性得不到保准密钥管理困难,尤其是在分布式网络中4.常用算法
DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish
PHP中对叫作加密算法
$mode_list = mcrypt_list_modes();//mcrypt支持的加密模式列表
// print_r($cipher_list);
// print_r($mode_list);
function encrypt($key,$data){
$td = mcrypt_module_open("des", "", "ecb", "");//运用MCRYPT_DES算法,ecb模式
$size = mcrypt_enc_get_iv_size($td); //设置初始向量的体积
$iv = mcrypt_create_iv($size,MCRYPT_RAND); //创建初始向量
$key_size = mcrypt_enc_get_key_size($td); //返回所支持的最大的密钥长度(以字节计算)
$salt = ;
$subkey = substr(md5(md5($key).$salt), 0,$key_size);//对key繁杂处理,并设置长度
mcrypt_generic_init($td, $subkey, $iv);
$endata = mcrypt_generic($td, $data);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $endata;
}
function decrypt($key,$endata){
$td = mcrypt_module_open("des", "", "ecb", "");//运用MCRYPT_DES算法,ecb模式
$size = mcrypt_enc_get_iv_size($td); //设置初始向量的体积
$iv = mcrypt_create_iv($size,MCRYPT_RAND); //创建初始向量
$key_size = mcrypt_enc_get_key_size($td); //返回所支持的最大的密钥长度(以字节计算)
$salt = ;
$subkey = substr(md5(md5($key).$salt), 0,$key_size);//对key繁杂处理,并设置长度
mcrypt_generic_init($td, $subkey, $iv);
$data = rtrim(mdecrypt_generic($td, $endata)).\n;
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $data;
}
$key = "www.tencent.com";
// $data = "返回所支持的最大的密钥长度(触及到发件费啦";
$data = "dadfafdafd,我是一个好孩儿";
$endata = encrypt($key,$data);
$data1 = decrypt($key,$endata);
echo $endata; //直接输出,在网页上是乱码,用base64_encode处理,就变成由字符、数组、加号、斜杠等共64种字符注册echo base64_encode($endata);
echo $data1;
非对叫作加密算法
1. 运用过程乙方生成两把密钥(公钥和私钥)甲方获取乙方的公钥,而后用它对信息加密。乙方得
|