PHP 后端加密算法demo
  Lpsr6E2mxSUl 2023年12月04日 17 0

PHP 是一种常用的后端语言,它提供了多种加密算法,用于保护网站的数据安全。下面是一些常用的加密算法和相关的 PHP 代码示例:

  1. 对称加密算法(Symmetric Encryption Algorithm)

对称加密算法使用相同的密钥对数据进行加密和解密。它的优点是加密解密速度快,缺点是密钥管理比较困难。PHP 中的常用对称加密算法包括:

  • DES(Data Encryption Standard)
  • AES(Advanced Encryption Standard)
  • Blowfish

下面是使用 DES 算法加密和解密数据的示例代码:

// 加密数据
$key = "1234567890123456";
$plaintext = "Hello World!";
$ciphertext = openssl_encrypt($plaintext, "DES", $key, OPENSSL_RAW_DATA, "hex$key");
// 解密数据
$ciphertext = openssl_decrypt($ciphertext, "DES", $key, OPENSSL_RAW_DATA, "hex$key");
echo $plaintext; // 输出 "Hello World!"

下面是使用 AES 算法加密和解密数据的示例代码:

// 加密数据
$key = "1234567890123456";
$plaintext = "Hello World!";
$ciphertext = openssl_encrypt($plaintext, "AES-256-CBC", $key, OPENSSL_RAW_DATA, "base64$key");
// 解密数据
$ciphertext = openssl_decrypt($ciphertext, "AES-256-CBC", $key, OPENSSL_RAW_DATA, "base64$key");
echo $plaintext; // 输出 "Hello World!"

注意,AES 算法使用了 CBC 模式,因此需要先将明文按照指定的字节数进行填充。这里使用了 base64 编码来进行填充,可以使用 openssl_encrypt() 函数的 fourth 参数来设置填充字节数。

  1. 非对称加密算法(Asymmetric Encryption Algorithm)

非对称加密算法使用一对密钥,分别用于加密和解密数据。它的优点是密钥管理比较容易,缺点是加密解密速度相对较慢。PHP 中的常用非对称加密算法包括:

  • RSA(Rivest-Shamir-Adleman)
  • DSA(Digital Signature Algorithm)

下面是使用 RSA 算法加密和解密数据的示例代码:

// 生成 RSA 密钥对
$key = openssl_pkey_new();
$private = openssl_pkey_get_private($key);
$public = openssl_pkey_get_public($key);

// 输出私钥和公钥
echo "私钥:";
openssl_pkey_export($private, $private_key);
echo "\n";
echo "公钥:";
openssl_pkey_export($public, $public_key);
echo "\n";

下面是使用 RSA 算法加密和解密数据的示例代码:

// 加密数据
$key = "1234567890123456";
$plaintext = "Hello World!";
$ciphertext = openssl_public_encrypt($plaintext, "AES-256-CBC", $key);
// 解密数据
$ciphertext = openssl_private_decrypt($ciphertext, "AES-256-CBC", $key);
echo $plaintext; // 输出 "Hello World!"

注意,在使用 RSA 算法进行加密时,需要使用 openssl_public_encrypt() 函数将公钥加密数据,使用 openssl_private_decrypt() 函数将私钥解密数据。

  1. 哈希算法(Hash Algorithm)

哈希算法将任意长度的输入数据转换为固定长度的输出数据,常用于验证数据的完整性和一致性。PHP 中的常用哈希算法包括:

  • MD5
  • SHA1
  • SHA256
  • SHA512

下面是使用 MD5 算法计算数据哈希值的示例代码:

// 计算数据哈希值
$data = "Hello World!";
$hash = md5($data);
echo $hash; // 输出 "a2e37ba79b8fc586ee76bb4ea3fca3b7"

注意,哈希算法的输出数据是不可逆的,因此无法从哈希值推算出原始数据。同时,哈希算法也是一种单向函数,不能通过哈希值推算出哈希值的产生过程。

非对称加密算法使用一对密钥,分别用于加密和解密数据。它的优点是密钥管理比较容易,缺点是加密解密速度相对较慢。PHP 中的常用非对称加密算法包括:

  • RSA(Rivest-Shamir-Adleman)
  • DSA(Digital Signature Algorithm)

下面是使用 RSA 算法加密和解密数据的示例代码:

// 生成 RSA 密钥对
$key = openssl_pkey_new();
$private = openssl_pkey_get_private($key);
$public = openssl_pkey_get_public($key);

// 输出私钥和公钥
echo "私钥:";
openssl_pkey_export($private, $private_key);
echo "\n";
echo "公钥:";
openssl_pkey_export($public, $public_key);
echo "\n";

下面是使用 RSA 算法加密和解密数据的示例代码:

// 加密数据
$key = "1234567890123456";
$plaintext = "Hello World!";
$ciphertext = openssl_public_encrypt($plaintext, "AES-256-CBC", $key);
// 解密数据
$ciphertext = openssl_private_decrypt($ciphertext, "AES-256-CBC", $key);
echo $plaintext; // 输出 "Hello World!"

注意,在使用 RSA 算法进行加密时,需要使用 openssl_public_encrypt() 函数将公钥加密数据,使用 openssl_private_decrypt() 函数将私钥解密数据。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月04日 0

暂无评论

推荐阅读
  NT5NRjELxLp1   20天前   29   0   0 PHP
  iALoCqVB8AGc   2023年12月25日   18   0   0 PHP
  yThMa20bw7iV   2024年02月19日   50   0   0 PHP
  NT5NRjELxLp1   2024年03月14日   53   0   0 PHP
Lpsr6E2mxSUl