ホームページ  >  記事  >  バックエンド開発  >  PHP 暗号化および復号化アルゴリズムの使用を求める

PHP 暗号化および復号化アルゴリズムの使用を求める

WBOY
WBOYオリジナル
2016-07-11 09:17:421060ブラウズ

暗号化 PHP アルゴリズム

最近のプロジェクト要件では、暗号化アルゴリズムを通じて通常の情報から暗号化された文字列を生成するために PHP を使用する必要があります。暗号化された文字列は、復号化アルゴリズム (逆) を通じて以前の情報を解析できます。私はこれまでにやったことがないので、既製の暗号化および復号化アルゴリズムについてのアイデアがあるかどうかをここで尋ねたいと思います。アルゴリズムは十分に複雑であり、簡単に解読できないものでなければなりません。特定のコード。

返信内容:

http://blog.shiniv.com/2013/11/use-aes-encryption-algorithm-to-encrypt-data-in-php/

http://www.soso.io/article/32937.html

一般的に使用される暗号化/復号化文字列関数:
/**

  • 可逆文字列暗号化機能
  • @param int $txtStream 暗号化する文字列コンテンツ
  • @param int $password 暗号化されたパスワード
  • @return string 暗号化された文字列*/ パブリック静的関数 enCrypt($txtStream,$password){ //秘密のロック文字列、繰り返し文字なし、A-Z、a-z、0-9、/、=、+、_、
  • を含む

$lockstream = 'st=lDEFABCNOPyzghi_jQRST-UwxkVWXYZabcdef+IJK6/7nopqr89LMmGH012345uv';
//乱数を見つけて、シークレット ロック文字列からシークレット ロック値を見つけます
$lockLen = strlen($lockstream);
$lockCount = rand(0,$lockLen-1);
$randomLock = $lockstream[$lockCount];
//ランダムな暗号化値と組み合わせて MD5 パスワードを生成します
$password = md5($password.$randomLock);
//文字列の暗号化を開始します
$txtStream = Base64_encode($txtStream);
$tmpStream = '';
$i=0;$j=0;$k = 0;
for ($i=0; $i $k = ($k == strlen($password)) 0 : $k;
$j = (strpos($lockstream,$txtStream[$i])+$lockCount+ord($password[$k]))%($lockLen);
$tmpStream .= $lockstream[$j];
$k++;
}
$tmpStream.$randomLock を返します;

}

header("content-type:text/html;charset=utf8");
$str = "私の名前はジャック・マーです、他の人には言いません!" //暗号化されたコンテンツ
$key = "9545646" // 独自のキーを作成します。 $cipher = MCRYPT_DES //パスワードの種類
; $modes = MCRYPT_MODE_ECB //パスワードモード
; $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);//初期化ベクトル
echo "暗号化されたプレーンテキスト:".$str."

";

$str_encrypt =base64_encode( mcrypt_encrypt($cipher,$key,$str,$modes,$iv)); echo "暗号化された暗号文: ".$str_encrypt."

";

$str_decrypt = mcrypt_decrypt($cipher,$key,base64_decode($str_encrypt),$modes,$iv); //復号化関数

echo "復元:".$str_decrypt;
?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。