6.1常见加密编码等算法解析

  • MD5,SHA, ASC,进制,时间戳,URL, BASE64, Unescape, AES, DES等

6.2常见加密形式算法解析

  • 直接加密,带salt, 带密码,带偏移,带位数,带模式,带干扰,自定义组合等

6.3常见解密方式

  • 枚举,自定义逆向算法,可逆向

6.4了解常规加密算法的特性

  • 长度位数,字符规律,代码分析,搜索获取等

6.5工具

{cloud title=”” type=”bd” url=”https://pan.baidu.com/s/1A5Jjc-spYBKlKiPNbaetbQ “ password=”8eh7 “/}
在线AES加密解密
自定义加密算法

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
<?php
function encrypt($data, $key)
{
   $key = md5('ISCC');
   #print $key;


自定义解密算法

   $x = 0;
   $len = strlen($data);
   $klen = strlen ($key);
   #print $len;
   for($i=0; $i < $len; $i++){
       if($x == $klen)
           $x = 0 ;
       $char .= $key[$x];
       $x += 1;
       #print $key[$X];
  }
   #print $char[0].$char[1].$char[2];
   for ($i=0;$i<$len; $i++){
       $str .= chr ((ord ($data[$i]) + ord ($char[$i]))%128);
  }
   return base64_encode ($str);
}
echo encrypt('helloword');
?>

自定义解密算法

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
<?php
function decrypt($str){
   $mkey = md5('ISCC');
   $klen = strlen($mkey);
   $tmp = $str;
   $tmp = base64_decode($tmp);         //解密base64
   $md_len = strlen($tmp);            //获取输入加密字符长度
   $x = 0;
   $char = "";                         //临时数组
   
   for ($i=0; $i<$md_len; $i++){
       if ($x == $klen){               //当加密字符串长度超出key
            $x = 0;                    //的长度时查重头开始和获取    
      }
       $char .= $mkey[$x];             //.= 累积函数
       $x += 1;
  }    

   $md_data = array();                 //获取加密字符中的ASCII数据
   for ($i=0; $i<$md_len; $i++){
       array_push($md_data,ord($tmp[$i]));
  }
   
   $md_data_source = array();
   $data1 = "";
   $data2 = "";
   foreach ($md_data as $key => $value){//最终还原
       $i = $key;
       if($i >= strlen($mkey)){
           $i = $i - strlen($mkey);
      }
       $dd = $value;
       $od = ord($mkey[$i]);
       array_push($md_data_source,$dd);
       $data1 .=chr(($dd+128)-$od);        //原数据加key的Ascii大于128
$data2 .=chr($dd-$od);              //原数据加key的Ascii小于128
  }
   
   print "data1 =>".$data1."<br>\n";
   print "data2 =>".$data2."<br>\n";
}

$str = 'HxclIiEqIiUY';
decrypt($str);
?>