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

數據簽名驗簽

對于非對稱密鑰類型的用戶主密鑰(CMK),您可以使用私鑰對消息或信息產生簽名。由于私鑰受到嚴格保護,因此只有受信者可以使用私鑰來產生簽名,簽名后您可以使用公鑰驗證簽名。

數據簽名驗簽的優勢如下:

  • 驗證數據的完整性(integrity):如果數據和簽名不匹配,數據可能受到了篡改。

  • 驗證消息的真實性(authenticity):如果消息和簽名不匹配,消息傳送者不是真實持有私鑰的用戶。

  • 為簽名提供不可抵賴性(non-repudiation):如果數據和簽名能夠匹配,簽名者不可以否認此簽名。

代碼示例

說明

阿里云賬號AccessKey擁有所有OpenAPI的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。

本示例以將AccessKey配置在環境變量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET的方式來實現身份驗證為例。

/**
 *
 * 簽名驗簽示例
 */
public class DigestMessageSignatureVerifySample {
    private static final String ASYM_CMK_ARN = "<acs:kms:RegionId:UserId:key/CmkId>";
    private static final String KEY_VERSION_ID = "<KEY_VERSION_ID>";
    // accessKeyId accessKeySecret
    private static final String ACCESS_KEY_ID = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
    private static final String ACCESS_KEY_SECRET = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
    private static final byte[] MESSAGE_TEXT = "this is test.".getBytes();

    public static void main(String[] args) {
        // 創建訪問阿里云配置。
        AliyunConfig config = new AliyunConfig();
        config.withAccessKey(ACCESS_KEY_ID, ACCESS_KEY_SECRET);

        // 創建SDK,傳入訪問阿里云配置。
        AliyunCrypto aliyunCrypto = new AliyunCrypto(config);

         // 設置簽名驗簽Provider。
        KmsAsymmetricKeyProvider provider = new KmsAsymmetricKeyProvider(ASYM_CMK_ARN, KEY_VERSION_ID, SignatureAlgorithm.RSA_PKCS1_SHA_256);

        // 使用原始消息。
        byte[] signature = aliyunCrypto.sign(provider, MESSAGE_TEXT, ContentType.MESSAGE).getResult();
        Boolean isOk = aliyunCrypto.verify(provider, MESSAGE_TEXT, signature, ContentType.MESSAGE);
        System.out.println(isOk);

        // 使用消息摘要。
        byte[] sha256Digest = provider.getDigest(MESSAGE_TEXT);
        signature = aliyunCrypto.sign(provider, sha256Digest, ContentType.DIGEST).getResult();
        isOk = aliyunCrypto.verify(provider, sha256Digest, signature, ContentType.DIGEST);
        System.out.println(isOk);
    }
}
說明

本示例的完整代碼請參見libabacloud-encryption-sdk-java-examples-signVerify