激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP實現的DES加密解密封裝類完整實例

PHP實現的DES加密解密封裝類完整實例

2021-05-13 18:37PHP二次開發 PHP教程

這篇文章主要介紹了PHP實現的DES加密解密封裝類,結合完整實例形式分析了php DES加密解密封裝類的定義與使用技巧,需要的朋友可以參考下

本文實例講述了PHP實現的DES加密解密封裝類。分享給大家供大家參考,具體如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
/**
* PHP版DES加解密類
* 可與java的DES(DESede/CBC/PKCS5Padding)加密方式兼容
*
*/
class CryptDes {
   var $key;
   var $iv;
   function CryptDes($key, $iv){
    $this->key = $key;
    $this->iv = $iv;
   }
   function encrypt($input){
     $size = mcrypt_get_block_size(MCRYPT_DES,MCRYPT_MODE_CBC); //3DES加密將MCRYPT_DES改為MCRYPT_3DES
     $input = $this->pkcs5_pad($input, $size); //如果采用PaddingPKCS7,請更換成PaddingPKCS7方法。
     $key = str_pad($this->key,8,'0'); //3DES加密將8改為24
     $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
     if( $this->iv == '' )
     {
       $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
     }
     else
     {
       $iv = $this->iv;
     }
     @mcrypt_generic_init($td, $key, $iv);
     $data = mcrypt_generic($td, $input);
     mcrypt_generic_deinit($td);
     mcrypt_module_close($td);
     $data = base64_encode($data);//如需轉換二進制可改成 bin2hex 轉換
     return $data;
   }
   function decrypt($encrypted){
     $encrypted = base64_decode($encrypted); //如需轉換二進制可改成 bin2hex 轉換
     $key = str_pad($this->key,8,'0'); //3DES加密將8改為24
     $td = mcrypt_module_open(MCRYPT_DES,'',MCRYPT_MODE_CBC,'');//3DES加密將MCRYPT_DES改為MCRYPT_3DES
     if( $this->iv == '' )
     {
       $iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
     }
     else
     {
       $iv = $this->iv;
     }
     $ks = mcrypt_enc_get_key_size($td);
     @mcrypt_generic_init($td, $key, $iv);
     $decrypted = mdecrypt_generic($td, $encrypted);
     mcrypt_generic_deinit($td);
     mcrypt_module_close($td);
     $y=$this->pkcs5_unpad($decrypted);
     return $y;
   }
   function pkcs5_pad ($text, $blocksize) {
     $pad = $blocksize - (strlen($text) % $blocksize);
     return $text . str_repeat(chr($pad), $pad);
   }
   function pkcs5_unpad($text){
     $pad = ord($text{strlen($text)-1});
     if ($pad > strlen($text)) {
       return false;
     }
     if (strspn($text, chr($pad), strlen($text) - $pad) != $pad){
       return false;
     }
     return substr($text, 0, -1 * $pad);
   }
   function PaddingPKCS7($data) {
     $block_size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC);//3DES加密將MCRYPT_DES改為MCRYPT_3DES
     $padding_char = $block_size - (strlen($data) % $block_size);
     $data .= str_repeat(chr($padding_char),$padding_char);
     return $data;
   }
}
$des = new CryptDes("12345678","12345678");//(秘鑰向量,混淆向量)
echo $ret = $des->encrypt("1111");//加密字符串
?>

希望本文所述對大家PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内久久久久 | 九九热在线精品视频 | 国产成人综合在线 | 国产精品亚洲欧美 | 久久精品一二三区白丝高潮 | 精品成人免费一区二区在线播放 | 国产成人精品一区二区仙踪林 | 成人一级视频 | 亚洲电影在线播放 | 一级电影免费 | 一区二区久久久久草草 | 国产亚洲精品久久午夜玫瑰园 | 精品国产精品久久 | 国产一区二区三区欧美 | 日本黄色大片免费观看 | 精品午夜影院 | 三人弄娇妻高潮3p视频 | 亚洲精品一区二区三区免 | 欧美精品一区二区视频 | 黄色网战入口 | 国产亚洲精品成人a | av性色全交蜜桃成熟时 | 三级xxxx | 欧美性精品videofree | 久久综合网址 | 国产色妞影院wwwxxx | 久久国产精品久久久久久久久久 | 福利在线小视频 | 久久男| 黄色网址电影 | 双性精h调教灌尿打屁股的文案 | 黑人一级片视频 | 精品一区二区三区免费视频 | 久久久久国 | 久久精品成人免费国产片桃视频 | 4p嗯啊巨肉寝室调教男男视频 | 免费a级片在线观看 | 国产精品入口夜色视频大尺度 | 国产精品1区,2区,3区 | 国产一级一区二区三区 | 成年免费视频黄网站在线观看 |