Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php sm4加密

作者:仅限对你关心   发布日期:2025-03-02   浏览:107

<?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";

解释说明:

  1. 类定义SM4 类用于封装 SM4 加密和解密功能。
  2. 构造函数:初始化密钥和向量(IV)。
  3. 加密方法encrypt 方法使用 openssl_encrypt 函数进行加密,返回加密后的二进制数据。
  4. 解密方法decrypt 方法使用 openssl_decrypt 函数进行解密,返回原始明文。
  5. 示例用法:创建 SM4 对象并进行加密和解密操作,输出加密后的十六进制字符串和解密后的明文。

请注意,SM4 是一种对称加密算法,需要确保密钥的安全性。

上一篇:php 数组反转

下一篇:php __call

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站