PHPで書かれたパスポート復号化関数

WBOY
リリース: 2016-07-25 09:02:53
オリジナル
903 人が閲覧しました
  1. /**

  2. * パスポート復号化関数
  3. *
  4. * @param string 暗号化された文字列
  5. * @param string 秘密鍵 (復号化と暗号化に使用)
  6. *
  7. * @return string 秘密鍵結果によって復号化された文字列
  8. */
  9. functionパスポート_decrypt($txt, $key) {

  10. // $txtの結果暗号化された文字列は Base64 デコードされ、秘密鍵とともに

  11. //passport_key() 関数による処理後の戻り値
  12. $txt =passport_key(base64_decode($txt), $key);
  13. //変数の初期化

  14. $tmp = '';

  15. // for ループ、$i は 0 から始まり $txt 文字列の長さで終わる整数です

  16. for ($i = 0; $i < strlen($txt); $i++) {
  17. // $tmp 文字列は最後に 1 ビットを追加し、その内容は $txt の $i 番目のビットです、
  18. // と $txt ビット $i + 1 の XOR をとります。 $i = $i + 1
  19. $tmp .= $txt[$i] ^ $txt[++$i];
  20. }

  21. // $tmp の値を次のように返します。結果

  22. return $tmp;

  23. }

  24. /**

  25. * パスポートキー処理関数
  26. *
  27. * @param string 暗号化または復号する文字列
  28. * @param string 秘密鍵(復号および暗号化用)
  29. *
  30. * @return string 処理された鍵
  31. */
  32. functionパスポート_key($txt, $encrypt_key) {
  33. // md5() の後に $encrypt_key の値を代入

  34. $encrypt_key = md5($encrypt_key);

  35. // 変数の初期化

  36. $ctr = 0 ;
  37. $tmp = '';

  38. // for ループ、$i は 0 から $txt 文字列の長さ未満までの整数です

  39. for($i = 0; $i < ; strlen($txt); $i++) {
  40. // $ctr = $encrypt_key の長さの場合、$ctr はクリアされます
  41. $ctr = $ctr == strlen($encrypt_key) ?
  42. // $tmp 文字列は最後に 1 ビットを追加します。その内容は $txt の $i 番目のビットで、
  43. // は $ctr + $encrypt_key の 1 番目のビットと XOR 演算されます。 $ctr = $ctr + 1
  44. $tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
  45. }

  46. // $tmp の値を結果として返します

  47. return $tmp;
  48. }
  49. ?>

コードをコピー


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート