日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

KMS實例SDK for C#

更新時間: 2024-12-20 14:56:33

KMS實例SDK for C#幫助您通過簡單的編程訪問KMS實例API,實現加密解密、簽名驗簽和獲取憑據值的業務訴求。本文介紹如何安裝SDK以及如何調用接口進行加密解密、簽名驗簽和獲取憑據值。

背景信息

KMS提供了多種類型的開發工具(SDK),請您在使用前先了解各SDK的使用場景。更多信息,請參見SDK參考

您可以訪問開源代碼倉庫,查看SDK源碼及代碼示例。

前提條件

  • 已購買和啟用KMS實例。具體操作,請參見購買和啟用KMS實例

  • 已完成密鑰和憑據的創建。具體操作,請參見密鑰管理快速入門密鑰管理快速入門創建憑據

    說明

    如果您的業務不涉及憑據,則無需創建憑據。

  • 已創建應用接入點并保存了Client Key、獲取KMS實例CA證書。具體操作,請參見創建應用接入點

  • 請確保應用程序運行環境可訪問KMS實例VPC地址。

    業務場景

    說明

    應用程序運行環境和KMS實例在同一個地域,且屬于同一個VPC

    默認應用程序運行環境和KMS實例間網絡互通,您無需配置。

    應用程序運行環境和KMS實例在同一個地域,但屬于不同VPC

    您需要配置多個VPC訪問同一個KMS實例,具體操作,請參見同地域多VPC訪問KMS實例

    應用程序運行環境和KMS實例在不同地域

    您需要配置應用跨地域訪問KMS實例。具體操作,請參見應用跨地域訪問KMS實例

環境準備

版本要求:.NET Framework 5.0及以上版本,或.NET Standard 2.0及以上版本。

安裝SDK

使用.Net CLI安裝SDK。

dotnet add package AlibabaCloud.Dkms.Gcs.Sdk
說明

建議您安裝SDK的最新版本,關于版本的更多信息,請參見開源代碼倉庫

初始化SDK

使用C# SDK發起KMS實例API請求,您需要初始化一個Client實例。

using System;

AlibabaCloud.Dkms.Gcs.OpenApi.Models.Config config = new AlibabaCloud.Dkms.Gcs.OpenApi.Models.Config
{
 ClientKeyFile = "your client key file path",
 Password = Environment.GetEnvironmentVariable("your client key password"),
 Endpoint = "<your KMS Instance Id>.cryptoservice.kms.aliyuncs.com",
 CaFilePath = "path/to/DKMSInstanceCACertificates"
};
var client = new AlibabaCloud.Dkms.Gcs.Sdk.Client(config);

使用已初始化的客戶端調用KMS實例API

初始化Client后,您可以通過Client調用KMS實例API,本文介紹如下使用場景和代碼示例。關于KMS實例API的詳細信息,請參見API概覽

  • 調用Encrypt接口使用對稱密鑰加密數據

    詳細代碼示例,請參見原始代碼

    //密鑰的ID或別名(Alias)。
    string keyId = "your-keyId";
    //待加密數據。
    byte[] plaintext = your-plaintext;
    AlibabaCloud.Dkms.Gcs.Sdk.Models.EncryptRequest request = new AlibabaCloud.Dkms.Gcs.Sdk.Models.EncryptRequest
    {
     Plaintext = plaintext,
     KeyId = keyId,
    };
    var encryptResponse = client.Encrypt(request);
    //加密數據。
    byte[] cipherData = encryptResponse.CiphertextBlob;
    //Cipher初始向量,用于解密數據。
    byte[] iv = encryptResponse.Iv;
    //請求ID。
    string requestId = encryptResponse.RequestId;
  • 調用Decrypt接口使用對稱密鑰解密密文

    詳細代碼示例,請參見原始代碼

    //密鑰的ID或別名(Alias)。
    string keyId = "your-keyId";
    byte[] ciphertextBlob = your-ciphertextBlob;
    byte[] iv = your-iv;
    AlibabaCloud.Dkms.Gcs.Sdk.Models.DecryptRequest request = new AlibabaCloud.Dkms.Gcs.Sdk.Models.DecryptRequest
    {
     KeyId = keyId,
     CiphertextBlob = ciphertextBlob,
     Iv = iv,
    };
    var decryptResponse = client.Decrypt(request);
    //原始數據。
    byte[] plaintext = decryptResponse.Plaintext;
    //請求ID。
    string requestId = decryptResponse.RequestId;
  • 調用Sign接口使用非對稱密鑰進行數字簽名

    詳細代碼示例,請參見原始代碼

    //密鑰的ID或別名(Alias)。
    string keyId = "your-keyId";
    //待簽名數據。
    byte[] message = your-message ;
    AlibabaCloud.Dkms.Gcs.Sdk.Models.SignRequest request = new AlibabaCloud.Dkms.Gcs.Sdk.Models.SignRequest
    {
     KeyId = keyId,
     Message = message,
    };
    var signResponse = client.Sign(request);
    //簽名值。
    byte[] signature = signResponse.Signature;
    //請求ID。
    string requestId = signResponse.RequestId;
  • 調用Verify接口使用非對稱密鑰驗證數字簽名

    詳細代碼示例,請參見原始代碼

    //密鑰的ID或別名(Alias)。
    string keyId = "your-keyId";
    //待簽名數據。
    byte[] message = your - message;
    //簽名數據。
    byte[] signature = your - signature;
    AlibabaCloud.Dkms.Gcs.Sdk.Models.VerifyRequest request = new AlibabaCloud.Dkms.Gcs.Sdk.Models.VerifyRequest
    {
     KeyId = keyId,
     Message = message,
     Signature = signature,
    };
    var verifyResponse = client.Verify(request);
    //驗簽結果。
    bool? value = verifyResponse.Value;
    //請求ID。
    string requestId = verifyResponse.RequestId;
  • 調用GetSecretValue接口獲取憑據值

    詳細代碼示例,請參見原始代碼

    //KMS的憑據名稱。
    string secretName = "your-secret-name";
    
    AlibabaCloud.Dkms.Gcs.Sdk.Models.GetSecretValueRequest request = new AlibabaCloud.Dkms.Gcs.Sdk.Models.GetSecretValueRequest
    {
     SecretName = secretName,
    };
    var getSecretValueResponse = client.GetSecretValue(request);
    //憑據值
    string secretData = getSecretValueResponse.SecretData;
    //請求ID。
    string requestId = getSecretValueResponse.RequestId;

相關文檔

上一篇: KMS實例SDK for Python 下一篇: 憑據SDK
阿里云首頁 密鑰管理服務 相關技術圈