PHP がカスタム キーを使用してデータを暗号化および復号化する方法の説明

jacklove
リリース: 2023-04-02 19:00:02
オリジナル
2681 人が閲覧しました

この記事では主に、PHP がカスタム キーを使用してデータを暗号化および復号化する方法を紹介します。これには、暗号化機能と復号化機能を実装するために文字列を変換およびインターセプトするための PHP の関連テクニックが含まれます。必要な友人は参照してください。

この記事の例では、PHP がカスタム キーを使用してデータを暗号化および復号化する方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです。

クライアントとサーバーが通信するとき、ID が URL パラメーターとしてやり取りされる非常に一般的なシナリオがあります。現在のビジネスがこの ID 識別子のみを持っていると仮定すると、この ID を暗号化して送信し、サーバーに復号化するには、もう少し安全な通信が必要です。ここでは、サーバーによって秘密に保たれるキーが必要です。このキーは暗号化と復号化に使用されます。

暗号化と復号化の方法は次のとおりです。 $str は暗号化および復号化する必要がある文字列、$key は自分で定義したキーです。

// 加密
function encryptStr($str, $key){
  $block = mcrypt_get_block_size('des', 'ecb');
  $pad = $block - (strlen($str) % $block);
  $str .= str_repeat(chr($pad), $pad);
  $enc_str = mcrypt_encrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
  return base64_encode($enc_str);
}
// 解密
function decryptStr($str, $key){
  $str = base64_decode($str);
  $str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
  $block = mcrypt_get_block_size('des', 'ecb');
  $pad = ord($str[($len = strlen($str)) - 1]);
  return substr($str, 0, strlen($str) - $pad);
}
ログイン後にコピー

価値があること 1 つ言及しておきます:

URL の ID のシナリオに適用される場合、暗号化後は、base64 エンコードになります。urlencode( ) 数値の影響を除去します。

#PS: 暗号化と復号化に興味のある友人は、このサイトのオンライン ツールを参照することもできます:

# #テキスト オンライン暗号化 復号化ツール (AES、DES、RC4 など):
http://tools.jb51.net/password/txt_encode

MD5 オンライン暗号化ツール:
#http://tools.jb51.net/password/CreateMD5Password

オンライン ハッシュ/ハッシュ アルゴリズム暗号化ツール:
http://tools.jb51.net/password/hash_encrypt

オンライン MD5/hash/SHA-1/SHA-2/SHA-256/ SHA-512/ SHA-3/RIPEMD-160 暗号化ツール: ##http://tools.jb51.net/password/hash_md5_sha
オンライン sha1/ sha224/sha256 /sha384/sha512 暗号化ツール:

http://tools.jb51.net/password/sha_encode
##興味があるかもしれない記事:

PHP で実装した簡易四則演算関数の説明

PHP で不定数のパラメータを実装する方法の関連説明Laravel ルーティング

Laravel Framework Blade Template 初心者向けチュートリアル


##

以上がPHP がカスタム キーを使用してデータを暗号化および復号化する方法の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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