52AV手機A片王|52AV.ONE

 找回密碼
 立即註冊
快捷導航
  • 我愛av論壇BBS
  • 手機A片
  • 自拍偷拍外流區
  • 貼圖區
  • 52av裸聊室
  • 中文-中國主播
Yahoo!奇摩搜尋
熱搜: av4u論壇
Google搜尋
熱搜: av4u論壇
     
查看: 7031|回復: 0

[網頁伺服器] Linux下以PHP撰寫 3DES(mcrypt) 加密方法(ECB模式)

[複製鏈接]
發表於 2014-12-11 21:02:57 | 顯示全部樓層 |閱讀模式
本帖最後由 IT_man 於 2014-12-11 22:31 編輯
/ d# M; H0 _; |; F4 \# i4 U: |1 M9 b4 t: k
由於敝網站文字加密的需要,需要複雜加密的演算法,因此選擇3DES加密。
3DES加密(Triple DES),是三重加密演算法的通稱,而3DES共有四種模式,下面介紹的是ECB模式的寫法。
首先先檢查linux是否有安裝mcrypt模組,方法如下:

, \  e- n  p+ ?0 j5 F0 G6 Y
  1. rpm -qa | grep php-mcrypt
複製代碼
8 ]' D: ?7 B: ?6 c  i) q
或在你的網站建一個php檔,如phpinfo.php(內容如下)查看是否有mcrypt module

% w' X$ U+ f/ L6 Z8 m- d
  1. <?php
    & c+ V3 ]7 r8 N+ i2 [' F& A3 }
  2. // Show all information, defaults to INFO_ALL6 f) s4 q' \, S/ U; @, u0 t, r* O" g
  3. phpinfo();
    ' _3 I1 ?: @' D/ g; W
  4. ?>
複製代碼
+ [: Z: R, J. G: u
然後於browser 執行phpinfo.php,結果如下:

8 @$ P+ G3 E5 I' D9 O  z
1.png
* w- `. m/ y6 I6 s( ^5 e' w

. `# F; ?3 n. N( P- u3 E
如果沒有安裝php-mcrypt,則進行安裝(安裝方法),安裝完後再以上述兩種方法擇一加以檢查。
之後就可以撰寫加密程式如下:
4 I3 j  i) V% u
  1. //加密函數撰寫' T1 n/ q5 i# o0 C
  2. function encrypt($source,$toencrypt){  
    - y. ]. N( o0 E) @* S# {' j8 h
  3. //加密用的key   
    ! P: Q: o! U$ s# {9 o/ b) Z" r9 N
  4. $key = $source;  3 Y4 I' M+ M7 C: u  o0 T
  5. //使用3DES方法加密   
    9 h6 I! v! h9 }) f" \  H3 _) T( c% h% d
  6. $encryptMethod = MCRYPT_TRIPLEDES; 0 G! B4 x9 j; ?" y( W' M
  7. //初始化向量來增加安全性
    5 x0 L0 g) t- _9 e% r$ G3 `5 @
  8. $iv = mcrypt_create_iv(mcrypt_get_iv_size($encryptMethod,MCRYPT_MODE_ECB), MCRYPT_RAND);  
    + Y* x0 m) _5 i8 s: N$ X
  9. //使用mcrypt_encrypt函數加密,MCRYPT_MODE_ECB表示使用ECB模式
    9 H6 v. h& c  Z8 x( F* A" Z4 C
  10. $encrypted_toencrypt = mcrypt_encrypt($encryptMethod, $key, $toencrypt, MCRYPT_MODE_ECB,$iv);   9 P; S0 p- u5 P1 q9 w" Z
  11. //回傳解密後字串7 }. d, O! p) E6 j$ r& R
  12. return base64_encode($encrypted_toencrypt);  
    7 o" O# m. T' Z2 |# F$ l. T
  13. }  
    ' I# `0 o/ f6 F! b1 t1 b
  14. //解密函數撰寫
    9 u3 k. h( A! J. G3 C
  15. function decrypt($source,$todecrypt) {  
    2 V" V$ W7 n4 X, U. b+ ?$ V
  16. //解密用的key,必須跟加密用的key一樣   ) e1 A( o+ _4 W* J6 e$ H# ^- b- Q
  17. $key = $source;  
    ' _# ?" v9 t, p- q5 }+ X/ z
  18. //解密前先解開base64碼
    & `$ X: T. a/ \  n7 K
  19. $todecrypt = base64_decode($todecrypt);
    * ~1 g. N! A8 S4 |& b
  20. //使用3DES方法解密
    / g- x. _# ^, Z- y6 A
  21. $encryptMethod = MCRYPT_TRIPLEDES;  & C" N" F* w3 ?% c
  22. //初始化向量來增加安全性
    3 H6 m; d$ _) k( |8 A$ f
  23. $iv = mcrypt_create_iv(mcrypt_get_iv_size($encryptMethod,MCRYPT_MODE_ECB), MCRYPT_RAND);  - n" T9 ~# w3 ^" \0 t( c( Z
  24. //使用mcrypt_decrypt函數解密,MCRYPT_MODE_ECB表示使用ECB模式  # _1 v1 s' _5 b7 z
  25. $decrypted_todecrypt = mcrypt_decrypt($encryptMethod, $key, $todecrypt, MCRYPT_MODE_ECB,$iv);+ {# H' i2 ?" N3 ?5 P3 D
  26. //回傳解密後字串
    , `& T# K# {6 m4 [  a$ j7 [
  27. return $decrypted_todecrypt;  
    $ C5 \! P! D6 G
  28. }  
    - g0 F$ W0 W& |9 D5 M- ]8 V
  29. //寫好加解密的函數之後,就可以來進行測試了8 M3 w, |" A9 w! ~& x* D4 F- f
  30. //key設定
    6 a; R9 t& d4 J5 G! Q
  31. $source ="1234567890";
    - N' `8 W* A5 o8 q1 f1 m
  32. //要加密的字串' ?5 Q' Z1 f1 k7 p& m+ k
  33. $string ="www.av4u.co";
    ( x( @+ C1 `: s) w8 O  C
  34. echo "string=".$string."<br>";
      \0 O6 m* y  j+ |9 V
  35. //進行加密並顯示加密後的字串8 @; X/ Z. g' s+ U6 A
  36. $encode = encrypt($source,$string);! _5 g6 d, k/ y- e  ]' @# I( b5 e
  37. echo "encode=".$encode."<br>";
    4 J( }% E- A6 Z# a; \9 O
  38. //進行解密並顯示解密後的字串4 a8 _0 Z/ S$ W* W( M2 @8 i
  39. $decode = decrypt($source,$encode);+ f" O/ Z* z$ k4 U2 |: J
  40. echo "decode=".$decode."<br>";
複製代碼
5 m0 }' Q' F/ n& b; B% K7 ~
結果如下:

1 C: n+ j) }. a
1.png
/ O4 _+ F4 M" p* t
注意:
      如果加解密過程沒有使用base64碼的話:會造成跨網域的資料傳輸時,接收端無法解讀(是加密過後的資料傳輸錯誤造成,但是在同一網站內的加解密是沒問題的),結果如下:

1 s3 f- ?' R/ k! H! `
1.png
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

本區塊內容依據『電腦網路內容分級處理辦法』為限制級網站,限定年滿18歲以上或達當地國家法定年齡人士方可進入,且願接受本站各項條款,未滿18歲 謝絕進入瀏覽。為防範未滿18歲之未成年網友瀏覽網路上限制級內容的圖文資訊,建議您可進行網路內容分級組織ICRA分級服務的安裝與設定。 (為還給愛護 本站的網友一個純淨的論壇環境,本站設有管理員)

QQ|小黑屋|手機板|52AV手機A片王

GMT+8, 2026-7-5 16:56 , Processed in 0.007669 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

連絡站長.廣告招商

[email protected] | Telegram:@asa00061     since 2015-01

快速回復 返回頂部 返回列表