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

用戶名  找回密碼
 立即註冊
快捷導航
  • 我愛av論壇BBS
  • 手機A片
  • 自拍偷拍外流區
  • 貼圖區
  • 52av裸聊室
  • 中文-中國主播

     
查看: 4388|回復: 0
打印 上一主題 下一主題

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

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2014-12-11 21:02:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

本帖最後由 IT_man 於 2014-12-11 22:31 編輯
6 D- E0 E1 \* G3 C' Y# @/ D, S1 o$ j" a
由於敝網站文字加密的需要,需要複雜加密的演算法,因此選擇3DES加密。
3DES加密(Triple DES),是三重加密演算法的通稱,而3DES共有四種模式,下面介紹的是ECB模式的寫法。
首先先檢查linux是否有安裝mcrypt模組,方法如下:

1 o- Z7 ]8 F$ a  F- j
  1. rpm -qa | grep php-mcrypt
複製代碼
6 l/ N1 k$ G$ i/ p& i; E2 q) V
或在你的網站建一個php檔,如phpinfo.php(內容如下)查看是否有mcrypt module

. |" g4 ~% p9 @$ }
  1. <?php# P' U' y$ T  k; k
  2. // Show all information, defaults to INFO_ALL% x: D2 e6 F: D, U# q& Q7 l4 _
  3. phpinfo();; r& `" {# E" E/ ]# h6 Y( H
  4. ?>
複製代碼

0 Q! c9 B& N9 O然後於browser 執行phpinfo.php,結果如下:

. ^9 J2 K1 _' ~9 w4 A

$ _. K& D2 C* t4 U5 t7 x
* Y/ T6 O2 u! y& z8 O4 _6 M9 K
如果沒有安裝php-mcrypt,則進行安裝(安裝方法),安裝完後再以上述兩種方法擇一加以檢查。
之後就可以撰寫加密程式如下:
. f$ q6 q- v7 E6 _$ K
  1. //加密函數撰寫
    ( Z: n& O) ?# w: t9 ~; o0 ]
  2. function encrypt($source,$toencrypt){  9 g  s/ r) }3 A3 U
  3. //加密用的key   2 d: u5 S- @- w* {# J
  4. $key = $source;  1 {0 @* X8 O4 z/ L8 u$ C+ B
  5. //使用3DES方法加密   
    ; S! ?! [+ a6 }/ x1 ?! f" x
  6. $encryptMethod = MCRYPT_TRIPLEDES; 3 I5 n1 h8 |: s( u1 _" `. j: G0 \/ K
  7. //初始化向量來增加安全性
    # v! x/ Q" S: J; F3 m. b* {
  8. $iv = mcrypt_create_iv(mcrypt_get_iv_size($encryptMethod,MCRYPT_MODE_ECB), MCRYPT_RAND);  1 Y/ G+ a* [- B; b8 }* q9 e
  9. //使用mcrypt_encrypt函數加密,MCRYPT_MODE_ECB表示使用ECB模式
    : M/ P5 L4 `0 n' d' W  ~( K) z
  10. $encrypted_toencrypt = mcrypt_encrypt($encryptMethod, $key, $toencrypt, MCRYPT_MODE_ECB,$iv);   
    / H  A# u' K3 V/ o" W2 _
  11. //回傳解密後字串
    # e/ Q2 `2 D% z  A, a
  12. return base64_encode($encrypted_toencrypt);  ! C; _! W- e" ^$ g$ k/ z
  13. }  
    4 d) M, D; u' v7 m6 ?& O
  14. //解密函數撰寫
    0 f" j2 F; ?. E8 w$ j0 r1 M/ F7 C
  15. function decrypt($source,$todecrypt) {  ; l) w- Q1 Z3 [$ S
  16. //解密用的key,必須跟加密用的key一樣   
    5 B4 c: u1 R4 ?4 V
  17. $key = $source;  , s6 q) m( ~- Z: g
  18. //解密前先解開base64碼. ?/ p$ H" {, r& t# U3 ^3 h$ B
  19. $todecrypt = base64_decode($todecrypt);
    - b7 H* U+ H7 e3 W/ m% g5 \* Z; u2 `
  20. //使用3DES方法解密
    / i7 {1 `9 J" U# r" n; t( R
  21. $encryptMethod = MCRYPT_TRIPLEDES;  & d, R6 l/ m; M1 U8 I" f
  22. //初始化向量來增加安全性
    , K7 `1 f  X' Q" o8 v
  23. $iv = mcrypt_create_iv(mcrypt_get_iv_size($encryptMethod,MCRYPT_MODE_ECB), MCRYPT_RAND);  
    $ M$ m2 _: h3 i) f
  24. //使用mcrypt_decrypt函數解密,MCRYPT_MODE_ECB表示使用ECB模式  
    8 H7 U8 |" S- L' [+ N, y" A7 _
  25. $decrypted_todecrypt = mcrypt_decrypt($encryptMethod, $key, $todecrypt, MCRYPT_MODE_ECB,$iv);3 c3 l9 R2 n& e! N
  26. //回傳解密後字串
    6 J& f3 [# [9 p* d
  27. return $decrypted_todecrypt;  
    2 c& p* T, c% P- d. X" m* _/ v6 `
  28. }  9 K- b% _) j* C1 b9 F$ ]
  29. //寫好加解密的函數之後,就可以來進行測試了; B$ N1 i: F; p# ^# M7 a* Y9 [7 c
  30. //key設定
    2 ]1 k6 ]+ f( O4 ^( A
  31. $source ="1234567890";
    ( Q" n# `# i$ `0 q$ [4 z
  32. //要加密的字串
    ) K$ y: r5 S. E1 l
  33. $string ="www.av4u.co";
    1 c! K, B1 O& z1 _) D/ h* C
  34. echo "string=".$string."<br>";( O1 E$ _0 X0 P" D
  35. //進行加密並顯示加密後的字串
    - y7 m, g3 p, z( g5 J
  36. $encode = encrypt($source,$string);, m  s6 Q1 C( k: h+ u1 L* A
  37. echo "encode=".$encode."<br>";
    5 [' Z, n) S9 D! Y
  38. //進行解密並顯示解密後的字串
    ; I4 I7 g5 o0 g, y, X8 y8 l
  39. $decode = decrypt($source,$encode);* Z. I' _, s9 D, d: S
  40. echo "decode=".$decode."<br>";
複製代碼

; K+ @4 b3 k1 ?# e
結果如下:
2 H# H1 U/ r( E  X/ h

# Y% k( `+ H. A% F" F
注意:
      如果加解密過程沒有使用base64碼的話:會造成跨網域的資料傳輸時,接收端無法解讀(是加密過後的資料傳輸錯誤造成,但是在同一網站內的加解密是沒問題的),結果如下:
$ g1 A- q8 d$ B; J/ D/ \
回復

舉報

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

本版積分規則
















聚BT福利

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

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

GMT+8, 2025-3-13 02:19 , Processed in 0.072775 second(s), 19 queries .

連絡站長.廣告招商

52avtv@gmail.com | QQ:2405733034     since 2015-01

裸聊妹 快速回復 返回頂部 返回列表