PHP加密解密函数及DES加密解密案例
本文介绍了在PHP中加密解密功能和des加密解密的应用,供大家参考:例如,PHP加密和解密的示例
加密功能:
将代码复制如下:
*功能:对字符串进行加密
*参数1:需要加密的内容
*参数二:键
* /
功能passport_encrypt($str,美元关键){ / /加密功能
Srand((双)瞬时()* 1000000);
encrypt_key美元= MD5(rand(0, 32000));
$ = 0;
$=;
为($我= 0;$i < strlen(str);$ i++){
点击率=点击率= =美元美元strlen($ encrypt_key)0美元的点击率;
美元美元美元encrypt_key TMP。= {中心}。($str { } {我^美元美元美元encrypt_key CTR + });
}
返回base64_encode(passport_key($ TMP,美元关键));
}
解密代码如下所示:
将代码复制如下:
*函数:字符串的解密
*参数1:需要解密的密码
*参数二:键
* /
功能passport_decrypt($str,美元关键){ / /解密功能
$str = passport_key(base64_decode(str),为重点);
$=;
为($我= 0;$i < strlen(str);$ i++){
$;
$;
}
返回$ TMP;
}
辅助功能:
将代码复制如下:
*辅助功能
* /
功能passport_key($str,encrypt_key美元){
encrypt_key美元= MD5($ encrypt_key);
$ = 0;
$=;
为($我= 0;$i < strlen(str);$ i++){
点击率=点击率= =美元美元strlen($ encrypt_key)0美元的点击率;
$ TMP。= str { } {我^美元美元美元encrypt_key CTR + };
}
返回$ TMP;
}
如下所示使用
复制代码代码如下:$str = 'author:';
美元的关键=为123456;
加密passport_encrypt($str =美元,美元关键);
美元($加密、解密= passport_decrypt美元关键);
回声的原文:',' $结构;
回声'密文',$加密。;
回声翻译:$,解密。;
des加密解密功能具体代码如下:
复制代码代码如下:< PHP
类DES
{
var密钥;
var;
函数DES($键,$ IV = 0){
/ /密钥长度的8,例如:1234abcd
$此键= $键;
如果($ = 0){
$;
{ { { }
美元-> IV = $ / / mcrypt_create_iv IV;(mcrypt_get_block_size(mcrypt_des,mcrypt_mode_cbc),mcrypt_dev_random);
}
}
函数加密($ STR){
返回十六个十六进制字符串加密,大写
美元mcrypt_get_block_size大小=(mcrypt_des,mcrypt_mode_cbc);
$str =美元-> pkcs5pad($str,$大小);
返回strtoupper(bin2hex(mcrypt_cbc(mcrypt_des,美元->键,$str,mcrypt_encrypt,美元-> IV))))
}
解密函数($ STR){
解密
strbin美元=美元-> hex2bin(strtolower($str));
$str = mcrypt_cbc(mcrypt_des,美元->键,strbin美元,mcrypt_decrypt,美元-> IV);
$str =美元-> pkcs5unpad($str);
返回$ STR;
}
功能hex2bin($ hexdata){
= $ bindata ;
为($我= 0;$我< strlen($ hexdata);$我= 2){
bindata美元= CHR(hexdec(substr(hexdata美元美元,我,2)));
}
返回的bindata;
}
功能pkcs5pad($文本块美元){
垫块美元=美元-(strlen($文本)% $块);
返回$文本。str_repeat(CHR(合垫),合垫);
}
功能pkcs5unpad($文本){
合垫= ORD($课文{ strlen($文本)- 1 });
如果(合垫> strlen($文本))
返回false;
如果(strspn(合文本,CHR(合垫),strlen($文本)至垫)!= PAD)
返回false;
返回substr(合文本,0,- 1 * $垫);
}
}
>
以下是测试的结果:
复制代码如下:$str = '12345678;
美元关键= '1234abcd;
$ =新des($键);
个美元=美元隐窝->加密($str);
$str = $地穴->解密($ MSTR);
echo $海峡个美元;
例2
代码如下:
将代码复制如下:
*对需要通过URL中GET模式传递的参数进行加密。
* /
功能args_encode($数据){
如果(is_array($数据)){
字符串= http_build_query美元(美元数据);
返回base64_encode($字符串);
{人}
返回false;
}
}
*获取URL中get模式传递的参数
* /
功能getargs(){
$字符串base64_decode($ _get { 'args});
parse_str($字符串$ G);
返回G;
}
希望本文能对大家的PHP程序设计有所帮助。