资讯详情

资讯详情

【计算机工具类-安全工具Skills】azure-security-keyvault-keys-java 技能

Azure Key Vault Keys Java SDK用于加密密钥管理。在创建、管理或使用RSA/EC密钥、执行加密/解密/签名/验证操作或使用HSM支持的密钥时使用。技能概述azure-security-keyvault-keys-java 技能提供了在Azure Key Vault和Managed HSM中管理加密密钥和执行加密操作的完整功能。该SDK支持RSA、EC和OCT密钥类型提供密钥生命周期管理、加密操作和密钥轮换等功能。下载地址https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-security-keyvault-keys-java主要功能密钥管理: 创建、获取、更新和删除RSA、EC和OCT密钥加密操作: 加密、解密、包装和解包密钥签名验证: 对数据进行签名和验证签名密钥轮换: 自动和手动密钥轮换策略备份恢复: 备份和恢复密钥HSM支持: 支持硬件安全模块HSM保护的密钥异步客户端: 提供异步API支持安装dependencygroupIdcom.azure/groupIdartifactIdazure-security-keyvault-keys/artifactIdversion4.9.0/version/dependency密钥类型类型描述RSARSA密钥2048、3072、4096位RSA_HSMHSM中的RSA密钥EC椭圆曲线密钥EC_HSMHSM中的椭圆曲线密钥OCT对称密钥仅限Managed HSMOCT_HSMHSM中的对称密钥客户端创建import com.azure.security.keyvault.keys.KeyClient;import com.azure.security.keyvault.keys.KeyClientBuilder;import com.azure.identity.DefaultAzureCredentialBuilder;// 密钥管理客户端KeyClient keyClient new KeyClientBuilder().vaultUrl(https://vault-name.vault.azure.net).credential(new DefaultAzureCredentialBuilder().build()).buildClient();// 加密客户端CryptographyClient cryptoClient new CryptographyClientBuilder().keyIdentifier(https://vault.vault.azure.net/keys/key-name/version).credential(new DefaultAzureCredentialBuilder().build()).buildClient();创建密钥示例// 创建RSA密钥KeyVaultKey rsaKey keyClient.createRsaKey(new CreateRsaKeyOptions(my-rsa-key).setKeySize(2048));// 创建带选项的RSA密钥KeyVaultKey rsaKeyWithOptions keyClient.createRsaKey(new CreateRsaKeyOptions(my-rsa-key-2).setKeySize(4096).setExpiresOn(OffsetDateTime.now().plusYears(1)).setEnabled(true).setHardwareProtected(true));// 创建EC密钥KeyVaultKey ecKey keyClient.createEcKey(new CreateEcKeyOptions(my-ec-key).setCurveName(KeyCurveName.P_256));加密和解密示例byte[] plaintext Hello, World!.getBytes(StandardCharsets.UTF_8);// 加密EncryptResult encryptResult cryptoClient.encrypt(EncryptionAlgorithm.RSA_OAEP,plaintext);byte[] ciphertext encryptResult.getCipherText();// 解密DecryptResult decryptResult cryptoClient.decrypt(EncryptionAlgorithm.RSA_OAEP,ciphertext);String decrypted new String(decryptResult.getPlainText(), StandardCharsets.UTF_8);签名和验证示例import java.security.MessageDigest;// 创建数据摘要byte[] data Data to sign.getBytes(StandardCharsets.UTF_8);MessageDigest md MessageDigest.getInstance(SHA-256);byte[] digest md.digest(data);// 签名SignResult signResult cryptoClient.sign(SignatureAlgorithm.RS256, digest);byte[] signature signResult.getSignature();// 验证VerifyResult verifyResult cryptoClient.verify(SignatureAlgorithm.RS256,digest,signature);System.out.println(Valid signature: verifyResult.isValid());密钥轮换// 轮换到新版本KeyVaultKey rotatedKey keyClient.rotateKey(my-key);// 设置轮换策略KeyRotationPolicy policy new KeyRotationPolicy().setExpiresIn(P90D) // 90天后过期.setLifetimeActions(Arrays.asList(new KeyRotationLifetimeAction(KeyRotationPolicyAction.ROTATE).setTimeBeforeExpiry(P30D))); // 过期前30天轮换keyClient.updateKeyRotationPolicy(my-key, policy);最佳实践使用DefaultAzureCredential进行身份验证在Azure托管的应用程序中使用托管标识启用软删除以便恢复使用RBAC进行细粒度访问控制定期轮换密钥以增强安全性为关键密钥启用HSM保护备份重要密钥以防数据丢失在高吞吐量场景中使用异步客户端局限性仅当任务明确符合上述范围时使用此技能不要将输出视为环境特定验证、测试或专家审查的替代品如果缺少必需的输入、权限、安全边界或成功标准请停止并请求澄清
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →