首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

aes-256-gcm使用PHP加密,使用javascript解密

AES-256-GCM是一种对称加密算法,它使用256位的密钥对数据进行加密和解密。在云计算领域中,AES-256-GCM常用于保护敏感数据的安全性。

在PHP中使用AES-256-GCM进行加密可以通过使用openssl扩展来实现。下面是一个示例代码:

代码语言:txt
复制
<?php
function encrypt($data, $key, $iv) {
    $cipher = "aes-256-gcm";
    $tag = null;
    $encryptedData = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv, $tag);
    return base64_encode($encryptedData . $tag);
}

$key = "YourEncryptionKey";
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length("aes-256-gcm"));
$data = "Hello, World!";

$encrypted = encrypt($data, $key, $iv);
echo "Encrypted data: " . $encrypted;
?>

在上面的代码中,encrypt函数接受要加密的数据、密钥和初始化向量(IV)作为参数,并返回加密后的数据。使用openssl_encrypt函数进行加密,并将加密后的数据和认证标签(tag)进行Base64编码后返回。

要在JavaScript中解密AES-256-GCM加密的数据,可以使用Web Crypto API。下面是一个示例代码:

代码语言:txt
复制
function decrypt(encryptedData, key, iv) {
    return crypto.subtle.importKey(
        "raw",
        key,
        { name: "AES-GCM" },
        false,
        ["decrypt"]
    ).then(function (cryptoKey) {
        return crypto.subtle.decrypt(
            { name: "AES-GCM", iv: iv },
            cryptoKey,
            encryptedData
        );
    }).then(function (decryptedData) {
        return new TextDecoder().decode(decryptedData);
    });
}

var key = new Uint8Array([ /* YourEncryptionKey in Uint8Array format */ ]);
var iv = new Uint8Array([ /* Initialization Vector in Uint8Array format */ ]);
var encryptedData = "/* Encrypted data in Base64 format */";

var decrypted = decrypt(
    Uint8Array.from(atob(encryptedData), c => c.charCodeAt(0)),
    key,
    iv
).then(function (decryptedData) {
    console.log("Decrypted data: " + decryptedData);
});

在上面的代码中,decrypt函数接受加密的数据、密钥和初始化向量(IV)作为参数,并返回解密后的数据。使用Web Crypto API的crypto.subtle.importKeycrypto.subtle.decrypt方法进行解密,并使用TextDecoder将解密后的数据转换为字符串。

需要注意的是,为了在JavaScript中使用密钥和IV,需要将它们转换为Uint8Array格式。同时,加密数据在JavaScript中是以Base64格式表示的,需要使用atob函数将其解码为Uint8Array

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和情况进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

8分0秒

使用python加密和解密文件

1分17秒

使用JavaScript编写的爬虫程序

16分8秒

使用docker搭建PHP集成开发环境

6分10秒

使用neovim进行php的xdebug调试

4分11秒

39-基本使用-非对称加密算法原理

1分38秒

JShaman(在线JS加密)使用技巧:保存和读取配置

19分51秒

PHP教程 PHP项目实战 19.使用PHP连接MySQL执行查询操作 学习猿地

58秒

在VS Code中使用JShaman插件混淆加密JS代码

12分39秒

PHP教程 PHP项目实战 20.使用PHP连接MySQL执行添加数据操作 学习猿地

7分54秒

PHP教程 PHP项目实战 21.使用PHP连接MySQL执行修改数据操作 学习猿地

9分17秒

PHP教程 PHP项目实战 22.使用PHP连接MySQL执行删除数据操作 学习猿地

6分47秒

40-基本使用-同样不安全的非对称加密算法

领券