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

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

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

[複製鏈接]
發表於 2014-12-11 21:02:57 | 顯示全部樓層 |閱讀模式
本帖最後由 IT_man 於 2014-12-11 22:31 編輯 9 r4 B- o$ z* N' L; }/ @
  b4 k' h. [  O4 i* _; a: m6 f5 N
由於敝網站文字加密的需要,需要複雜加密的演算法,因此選擇3DES加密。
3DES加密(Triple DES),是三重加密演算法的通稱,而3DES共有四種模式,下面介紹的是ECB模式的寫法。
首先先檢查linux是否有安裝mcrypt模組,方法如下:

; ]8 J; d! N/ Q9 |
  1. rpm -qa | grep php-mcrypt
複製代碼
4 L+ Z* w( c2 D' }3 {# W; N
或在你的網站建一個php檔,如phpinfo.php(內容如下)查看是否有mcrypt module

/ y7 V0 x& |3 B0 J7 b8 n+ a
  1. <?php' ^# ^1 B7 r/ K
  2. // Show all information, defaults to INFO_ALL
    " J; Z5 R4 ~3 [7 W! s7 B- G
  3. phpinfo();% |9 G$ G: B2 y- r; R3 `( s2 }& N
  4. ?>
複製代碼

: M/ c' T7 h( f" Q然後於browser 執行phpinfo.php,結果如下:

7 t$ [$ o- G1 Z, X( a1 r7 P; R
1.png 4 G) x4 {4 O- ~+ q( B4 h& b5 u9 q
4 X/ p" F$ s/ m0 z: e! i. ]
如果沒有安裝php-mcrypt,則進行安裝(安裝方法),安裝完後再以上述兩種方法擇一加以檢查。
之後就可以撰寫加密程式如下:
0 j; L' G' i% i/ u, e
  1. //加密函數撰寫
    * P! l. `0 ~( Q" P5 W" ~4 s
  2. function encrypt($source,$toencrypt){  
    0 S: n! F+ B6 e9 C
  3. //加密用的key   4 G' b# b& Q% E- e: ~. M( j( o
  4. $key = $source;  0 X! Q& A' b. K9 O4 O
  5. //使用3DES方法加密   & V! B% l. I7 o% v' y
  6. $encryptMethod = MCRYPT_TRIPLEDES; - n3 j4 G4 g; p
  7. //初始化向量來增加安全性
    * E( V. d, o( T# E
  8. $iv = mcrypt_create_iv(mcrypt_get_iv_size($encryptMethod,MCRYPT_MODE_ECB), MCRYPT_RAND);  
    1 [, H- X3 {4 i. Z2 S, v
  9. //使用mcrypt_encrypt函數加密,MCRYPT_MODE_ECB表示使用ECB模式- k/ |* T& b( B# z5 [
  10. $encrypted_toencrypt = mcrypt_encrypt($encryptMethod, $key, $toencrypt, MCRYPT_MODE_ECB,$iv);   . c5 _: g; a8 R, R# i7 x
  11. //回傳解密後字串
      `0 D" l& h1 N
  12. return base64_encode($encrypted_toencrypt);  ; A/ g& E% y1 D9 m1 o/ G
  13. }  / Z2 p5 |8 \/ o; n) ]/ T  ]
  14. //解密函數撰寫; |- B1 ^! `  }/ h4 u% D3 Q
  15. function decrypt($source,$todecrypt) {  ; A8 k1 _8 g/ g- h( H& m1 n+ @% i7 f
  16. //解密用的key,必須跟加密用的key一樣   
    " Y5 T2 D7 g0 J  T0 v
  17. $key = $source;  
    $ E8 H0 `; n- H, \
  18. //解密前先解開base64碼
    ) r; ~9 @! t, X3 R& L9 N4 d
  19. $todecrypt = base64_decode($todecrypt);
    ; f" P. I6 y3 }! U
  20. //使用3DES方法解密
    2 n1 W8 G; V% O& v: E: y  R; C
  21. $encryptMethod = MCRYPT_TRIPLEDES;  
    - e/ l: j* f$ Q+ {
  22. //初始化向量來增加安全性   Y& V, q+ }, _0 z: f  m6 Y/ `
  23. $iv = mcrypt_create_iv(mcrypt_get_iv_size($encryptMethod,MCRYPT_MODE_ECB), MCRYPT_RAND);  7 I% ^, G8 o7 W5 D& [8 k
  24. //使用mcrypt_decrypt函數解密,MCRYPT_MODE_ECB表示使用ECB模式  0 l7 w- R  a% m
  25. $decrypted_todecrypt = mcrypt_decrypt($encryptMethod, $key, $todecrypt, MCRYPT_MODE_ECB,$iv);5 `$ `5 A& |& _$ \# b
  26. //回傳解密後字串
    - H. r& N5 ^% H; E$ o
  27. return $decrypted_todecrypt;  
    " g5 p6 f0 v7 k& [1 X* S8 Z
  28. }  ' `  {' k( j! J' ~
  29. //寫好加解密的函數之後,就可以來進行測試了
    2 ?- }: p) s( R
  30. //key設定
    2 `& O/ O# j. V' K" w, l4 h
  31. $source ="1234567890";3 ?2 S4 u- b" P& r8 D  x2 p
  32. //要加密的字串
    ; Q/ z/ s% [0 o: J; Y  Z* i+ [1 B
  33. $string ="www.av4u.co";8 F# R! k) z8 [, r, a9 W" m8 m! ]
  34. echo "string=".$string."<br>";
    4 u% ?* Q! s# L
  35. //進行加密並顯示加密後的字串7 `/ I- A5 \1 @7 `
  36. $encode = encrypt($source,$string);9 H! W3 X- a% x8 {$ p( r
  37. echo "encode=".$encode."<br>";
    0 D# H4 N6 q- d( u2 y2 X9 M
  38. //進行解密並顯示解密後的字串
    6 f+ @4 x0 u% W7 F0 p! p
  39. $decode = decrypt($source,$encode);
      l9 i) y) H' u* j- }
  40. echo "decode=".$decode."<br>";
複製代碼

2 w) r- x. H1 q9 n: }
結果如下:

! c; p1 b; N; s7 W- o+ f
1.png
  N+ y; I9 A  y. H9 z1 J$ ~
注意:
      如果加解密過程沒有使用base64碼的話:會造成跨網域的資料傳輸時,接收端無法解讀(是加密過後的資料傳輸錯誤造成,但是在同一網站內的加解密是沒問題的),結果如下:

2 x: T: x) r- B9 V- g/ T; ~$ `" _' J
1.png
回復

使用道具 舉報

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

本版積分規則

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

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

GMT+8, 2026-5-21 07:02 , Processed in 0.008306 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

連絡站長.廣告招商

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

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