<?php
// SM4加密算法的示例代码
class SM4 {
private $key;
private $iv;
public function __construct($key, $iv = '') {
// 初始化密钥和向量
$this->key = $key;
$this->iv = $iv;
}
public function encrypt($data) {
// 加密数据
$method = 'sm4-cbc';
return openssl_encrypt($data, $method, $this->key, OPENSSL_RAW_DATA, $this->iv);
}
public function decrypt($data) {
// 解密数据
$method = 'sm4-cbc';
return openssl_decrypt($data, $method, $this->key, OPENSSL_RAW_DATA, $this->iv);
}
}
// 示例用法
$key = '0123456789abcdef'; // 16字节密钥
$iv = 'fedcba9876543210'; // 16字节初始化向量
$sm4 = new SM4($key, $iv);
$plaintext = "Hello, World!";
$encrypted = $sm4->encrypt($plaintext);
echo "Encrypted: " . bin2hex($encrypted) . "\n";
$decrypted = $sm4->decrypt($encrypted);
echo "Decrypted: " . $decrypted . "\n";
SM4
类用于封装 SM4 加密和解密功能。encrypt
方法使用 openssl_encrypt
函数进行加密,返回加密后的二进制数据。decrypt
方法使用 openssl_decrypt
函数进行解密,返回原始明文。SM4
对象并进行加密和解密操作,输出加密后的十六进制字符串和解密后的明文。请注意,SM4 是一种对称加密算法,需要确保密钥的安全性。
上一篇:php 数组反转
下一篇:php __call
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站