You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中调用Security.Cryptography.AesGcm类的Encrypt方法

问题原因

你的问题属于调用语法错误,不存在依赖库缺失的情况。
AesGcm类的Encrypt是实例方法,不是静态方法,你直接对类本身([Security.Cryptography.AesGcm]是类型对象)调用该方法,自然会触发方法不存在的报错。

正确使用示例

AES-GCM加密需要提前准备合法密钥、nonce(随机数),先实例化AesGcm对象后再调用加密方法,参考代码如下:

# 生成32字节AES256密钥(也可传入符合长度要求的已有密钥,16/24/32字节分别对应AES128/192/256)
$key = [Security.Cryptography.RandomNumberGenerator]::GetBytes(32)
# 实例化AesGcm对象,传入密钥
$aesGcm = New-Object Security.Cryptography.AesGcm $key
# 生成GCM标准推荐的12字节长度nonce,注意同一密钥不可重复使用nonce
$nonce = [Security.Cryptography.RandomNumberGenerator]::GetBytes(12)
# 待加密明文转字节数组
$plainBytes = [Text.Encoding]::UTF8.GetBytes("你要加密的内容")
# 初始化和明文等长的数组接收密文
$cipherBytes = New-Object byte[] $plainBytes.Length
# 初始化16字节数组接收校验标签
$tag = New-Object byte[] 16

# 调用实例的Encrypt方法完成加密
$aesGcm.Encrypt($nonce, $plainBytes, $cipherBytes, $tag)

# 用完释放资源
$aesGcm.Dispose()

注意事项

  • 解密时需要传入和加密阶段完全一致的密钥、nonce、tag,才能完成解密和完整性校验
  • nonce、tag不需要保密,但必须和密文绑定存储,密钥需要单独妥善保管
  • 同一密钥下重复使用nonce会直接导致密钥泄露,必须保证每个加密场景的nonce唯一

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 15:21:01