gpt4 book ai didi

java - AWS KMS 如何使用解密函数 Java

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:29 27 4
gpt4 key购买 nike

我的问题可能听起来太明显了,但我是 Amazon KMS 的新手。在阅读了 AWS 上的大量文档后,我了解到,如果我直接使用 CMK 进行加密和解密,我可以直接通过创建加密和解密请求来完成。但我不清楚的是,当我生成数据 key 并使用它进行调试时,文档说我需要传递加密的数据 key 来解密 API,并且我将获得纯文本 key ,我可以用它来调试我的“自己的”文本。我不明白这部分。谁能解释一下这一点并给出一个使用数据 key 解密的小例子。提前致谢

我的示例代码:

public String decrypt(String encryptedTextString) {
ByteBuffer encryptedText = ByteBuffer.wrap(Base64.getDecoder().decode(encryptedTextString));
DecryptRequest req=new DecryptRequest().withCiphertextBlob(encryptedText);
ByteBuffer plainText = client.decrypt(req).getPlaintext();
return new String(plainText.array());
}

public String encrypt(String plainTextString) {
ByteBuffer plainText = ByteBuffer.wrap(Base64.getDecoder().decode(plainTextString));
EncryptRequest req = new EncryptRequest().withKeyId(new String(plainTextKey.array()))
.withPlaintext(plainText);
ByteBuffer encryptedText =client.encrypt(req).getCiphertextBlob();
return new String(encryptedText.array());
}

AWSKMSCryprography() {
this.setCredential(new ClearCredential());
this.genrateKey();
}

private void genrateKey() {
GenerateDataKeyRequest request = new GenerateDataKeyRequest();
request.setKeyId(keyID);
request.setKeySpec("AES_128");
GenerateDataKeyResult dataKeyResult = client.generateDataKey(request);
plainTextKey = dataKeyResult.getPlaintext();
encryptedKey = dataKeyResult.getCiphertextBlob();

}

最佳答案

我也是使用 KMS 的新手,但有关使用加密和解密的教程文档对使用加密和解密方法具有误导性。 AWSKMSClient.generateDataKey 的 API 文档和AWSKKMSClient.encrypt指出 encrypt() 适用于特定用例,并且应使用不同的模式来使用本地 key 。

更有用的 KMS 示例可以在 dynamodb encryption library 中找到。 。另请参阅http://netnix.org/2015/04/19/aes-encryption-with-hmac-integrity-in-java/了解一般基本加密的概述。

关于java - AWS KMS 如何使用解密函数 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28671894/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com