ホームページ  >  記事  >  バックエンド開発  >  PHP暗号化および復号化クラスのサンプル分析_PHPチュートリアル

PHP暗号化および復号化クラスのサンプル分析_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:56:37733ブラウズ

PHP 暗号化と復号化クラスの分析

この記事では、主に PHP 暗号化と復号化クラスの原理と関連技術を分析します。必要な友人は非常に参考になります。それ

この記事の例では、PHP の暗号化および復号化クラスについて説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

このコードは、配列暗号化、暗号文の有効期間、およびさまざまな対称暗号化をサポートしています

パラメータは以下の通りです:

* @use ption::en($string, $key);

* @param String $string 暗号化する必要がある文字列

* @param String $skey key

* @param int $expiry 暗号文の有効期間、暗号化されたときに有効、秒単位、0 は永続的な有効性を意味します

* @return String

1. phpコードは以下の通りです:

?

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

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

/*

* -ツールライブラリ-暗号化および復号化パスワード

*/

クラスオプション

{

プライベート静的 $original = array('=', '+', '/');

private static $later = array('O0O0O', 'o0O0o', 'oo00o');

関数__construct()

{

}

プライベート静的関数 md5($skey = '')

{

$skey = $skey : 'ui' //uicms::_config('security/authkey');

return md5(substr($skey, 0, 16));

}

/**

* @use ption::en($string, $key);

* @param String $string 暗号化する必要がある文字列

* @param String $skey キー

* @param int $expiry 暗号文の有効期間、暗号化中に有効、単位は秒、0 は永続的な有効性を意味します

* @戻り文字列

*/

静的パブリック関数 en($string = '', $skey = '', $expiry=0)

{

if( is_array( $string ) )

{

$string = json_encode($string); // uicms::json($string, true, 'en');

}

$string = str_pad($expiry ? $expiry + TIME : 0, 10, 0).$string;

$strArr = str_split(base64_encode($string));

$strCount = count($strArr);

$skey = static::md5($skey);

foreach (str_split($skey) as $key => $value)

{

$key

}

return str_replace(self::$original, self::$later, join('', $strArr));

}

/**

* @use ption::de($string, $key);

* @param String $string 復号化する文字列

* @param String $skey キー

* @戻り文字列

*/

静的パブリック関数($string = '', $skey = '')

{

$strArr = str_split(str_replace(self::$later,self::$original,$string),2);

$strCount = count($strArr);

$skey = static::md5($skey);

foreach (str_split($skey) as $key => $value)

{

$key

}

$result =base64_decode(join('', $strArr));

if(substr($result, 0, 10) == 0 || substr($result, 0, 10) - TIME > 0)

{

substr($result, 10)を返す;

}

その他

{

false を返す;

}

}

}

2.用法如下:

?

1

2

3

4

5

6

$str['ユーザー名'] = 'オシナ';

$str['pw'] = '123456';

$str['huoxin'] = '!@#$%^&';

エコー「文字列:」。 $str 。 "
";

echo "エンコード: " 。 ($enstring = ption::en($str)) 。 '
';

エコー「デコード:」。 ption::de($enstring);

ここに記載されている大家のphpプログラムの設計に役立つことを希望します。

http://www.bkjia.com/PHPjc/987100.html

tru​​ehttp://www.bkjia.com/PHPjc/987100.html技術記事 PHP加密解密型例分析この篇文章主媒介了PHP加密解密型,例分析php实现加密解密的原理と関連技術巧,非常に有能な价值,必要な友友可...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。