本文
介绍了php的加密解密
方法,供大家
参考,如下:
加密
功能string2secret($str)
{
$ = 123;
为TD = mcrypt_module_open(mcrypt_des,' ','ecb ',');
四美元= mcrypt_create_iv(mcrypt_enc_get_iv_size($ TD),mcrypt_rand);
KS = mcrypt_enc_get_key_size美元(美元TD);
美元关键= substr(MD5(美元,0美元的关键),KS);
mcrypt_generic_init(美元美元美元的关键,TD,IV);
秘密= mcrypt_generic美元(美元TD,$str);
mcrypt_generic_deinit($ TD);
mcrypt_module_close($ TD);
归还秘密;
}
解密
功能secret2string($秒)
{
$ = 123;
为TD = mcrypt_module_open(mcrypt_des,' ','ecb ',');
四美元= mcrypt_create_iv(mcrypt_enc_get_iv_size($ TD),mcrypt_rand);
KS = mcrypt_enc_get_key_size美元(美元TD);
美元关键= substr(MD5(美元,0美元的关键),KS);
mcrypt_generic_init(美元美元美元的关键,TD,IV);
字符串= mdecrypt_generic美元(美元TD,$秒);
mcrypt_generic_deinit($ TD);
mcrypt_module_close($ TD);
返回修剪($字符串);
}
回声secret2string(string2secret(11111111111111111 ));
结果是11111111111111111 /
显示。
回声。string2secret(11111111111111111 );
/ /乱码
回声';
/ / $字符串加密字符串isencrypt美元=真=假:解密加密isencrypt美元
功能dencrypt($字符串,isencrypt美元= true,美元关键=key_space ){
如果(!isset($字符串{ 0 })| |!isset($关键{ 0 })){
返回false;
}
dynkey美元=美元isencrypt哈希('sha1,瞬时(真)):substr($字符串,0, 40);
fixedkey =哈希('sha1美元,美元关键);
dynkeypart1美元= substr(dynkey美元,0, 20);
dynkeypart2美元= substr(dynkey美元,20);
fixedkeypart1美元= substr(fixedkey美元,0, 20);
fixedkeypart2美元= substr(fixedkey美元,20);
美元关键=哈希('sha1,dynkeypart1美元。fixedkeypart1美元。dynkeypart2美元。fixedkeypart2美元);
字符串isencrypt fixedkeypart1美元美元美元。为字符串。dynkeypart2美元:(isset($字符串{ 339 })gzuncompress(base64_decode(substr($字符串,40))):substr($字符串)。
$ = 0;
结果=;
$ len = strlen($字符串);
为($ = 0;$ n;
由于美元= CHR(ORD($字符串{ $ n })^ ORD($关键{ $ N % 40 }));
}
返回的isencrypt dynkey美元str_replace(' = ',' ',base64_encode($ n>299 gzcompress($结果):$结果)):substr(美元的结果,20,20);
}
回声strlen(dencrypt(12345678912345 ));
希望本文能对PHP
程序设计有所帮助。