php-tool-box:code-book
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
php-tool-box:code-book [2011/09/06 22:38] – 0.2.0 dgbadmin | php-tool-box:code-book [2020/10/25 12:07] (現在) – dgbadmin | ||
---|---|---|---|
行 1: | 行 1: | ||
====== PHPでお手軽に暗号化、復号する - CodeBook.php ====== | ====== PHPでお手軽に暗号化、復号する - CodeBook.php ====== | ||
+ | |||
+ | ===== 注意 ===== | ||
+ | |||
+ | **CodeBook.phpが内部的に使用しているphp-mcryptは、[[http:// | ||
+ | |||
+ | ---- | ||
コメントと更新履歴は[[http:// | コメントと更新履歴は[[http:// | ||
行 21: | 行 27: | ||
<code php> | <code php> | ||
<?php | <?php | ||
- | $key = ' | + | require(' |
+ | |||
+ | $key = ' | ||
$text = ' | $text = ' | ||
- | + | ||
+ | |||
/* AES(RIJNDAEL128)、CBC、PKCS# | /* AES(RIJNDAEL128)、CBC、PKCS# | ||
$codeBook = new CodeBook(); | $codeBook = new CodeBook(); | ||
list($encrypted, | list($encrypted, | ||
$decrypted = $codeBook-> | $decrypted = $codeBook-> | ||
+ | |||
// => " | // => " | ||
echo $text . ' => ' . $encrypted . ' => ' . $decrypted; | echo $text . ' => ' . $encrypted . ' => ' . $decrypted; | ||
echo '< | echo '< | ||
echo var_dump($text === $decrypted); | echo var_dump($text === $decrypted); | ||
+ | |||
echo '< | echo '< | ||
- | + | ||
+ | |||
/* RIJNDAEL256、ECB、Null文字でPAD */ | /* RIJNDAEL256、ECB、Null文字でPAD */ | ||
$codeBook = new CodeBook(MCRYPT_RIJNDAEL_256, | $codeBook = new CodeBook(MCRYPT_RIJNDAEL_256, | ||
list($encrypted) = $codeBook-> | list($encrypted) = $codeBook-> | ||
$decrypted = $codeBook-> | $decrypted = $codeBook-> | ||
+ | |||
// => " | // => " | ||
echo $text . ' => ' . $encrypted . ' => ' . $decrypted; | echo $text . ' => ' . $encrypted . ' => ' . $decrypted; | ||
echo '< | echo '< | ||
echo var_dump($text === $decrypted); | echo var_dump($text === $decrypted); | ||
+ | |||
echo '< | echo '< | ||
- | + | ||
+ | |||
/* Blowfish、CBC、スペースでPAD */ | /* Blowfish、CBC、スペースでPAD */ | ||
$codeBook = new CodeBook(MCRYPT_BLOWFISH, | $codeBook = new CodeBook(MCRYPT_BLOWFISH, | ||
list($encrypted, | list($encrypted, | ||
$decrypted = $codeBook-> | $decrypted = $codeBook-> | ||
+ | |||
// => " | // => " | ||
echo $text . ' => ' . $encrypted . ' => ' . $decrypted; | echo $text . ' => ' . $encrypted . ' => ' . $decrypted; | ||
行 68: | 行 76: | ||
/** | /** | ||
| | ||
- | | + | |
| | ||
| | ||
行 108: | 行 116: | ||
*/ | */ | ||
public function encrypt($key, | public function encrypt($key, | ||
+ | $this-> | ||
+ | |||
if (!$iv) { | if (!$iv) { | ||
$iv = $this-> | $iv = $this-> | ||
行 129: | 行 139: | ||
*/ | */ | ||
public function decrypt($key, | public function decrypt($key, | ||
+ | $this-> | ||
$bin = $this-> | $bin = $this-> | ||
行 182: | 行 193: | ||
public function hex2bin($hex) { | public function hex2bin($hex) { | ||
return pack(' | return pack(' | ||
+ | } | ||
+ | /** | ||
+ | * 暗号鍵の長さをチェックする | ||
+ | * @param | ||
+ | * @throws Exception | ||
+ | */ | ||
+ | private function _checkKeySize($key) { | ||
+ | $sizes = mcrypt_module_get_supported_key_sizes($this-> | ||
+ | |||
+ | // | ||
+ | if ($sizes && !in_array(strlen($key), | ||
+ | throw new Exception(" | ||
+ | } | ||
} | } | ||
/** | /** |
php-tool-box/code-book.txt · 最終更新: 2020/10/25 12:07 by dgbadmin