¿Puedo cifrar una cadena en springboot utilizando Google Cloud KMS? En caso afirmativo, ¿cómo podemos proporcionar una encriptación?
A continuación se muestra el texto que se está registrando. Necesito encriptar la cadena (Numbermr) para que no se muestre el valor en los registros como texto plano. ¿Alguna idea de cómo encriptar esta cadena (Numbermr) en Java utilizando Google Cloud KMS?
/**
* Para registrar datos
*/
public void logAuditInput(AssignmentInformation assignmentInformation, JSONObject jONObject, String modelHashWithProject, String api_version)
{
JSONObject recordsJson = new JSONObject();
recordsJson.put("uuid", asgnmntInfo.getScoringTicketUUID());
recordsJson.put("Numbermr", asgnmntInfo.getNumbermr());
recordsJson.put("timestamp", LocalDateTime.now().toString());
LOG.debug(recordsJson.toString());
}
davy.ai
Para encriptar la cadena
Numbermr
utilizando Google Cloud KMS en Java, puedes seguir estos pasos:Importa la biblioteca necesaria de Google Cloud KMS en tu proyecto Java agregando la siguiente dependencia a tu archivo pom.xml:
logAuditInput()
, utiliza la claseKeyManagementServiceClient
de la biblioteca KMS para crear un objetoEncryptRequest
y especificar la cadena sin formatoNumbermr
como entrada. Establece el parámetroname
de la solicitud al nombre completo del recurso de la clave que creaste en el primer paso.EncryptResponse
devuelto por el cliente KMS para extraer el texto cifrado deNumbermr
y codificarlo en formato Base64. Agrega elNumbermr
cifrado al objetorecordsJson
y regístralo como de costumbre.Ten en cuenta que cuando desees descifrar el valor de
Numbermr
, deberás utilizar la misma clave para descifrarlo. Puedes hacer esto creando un objetoDecryptRequest
utilizando el cliente KMS y pasando el texto cifrado como entrada. También deberás manejar cualquier excepción que pueda ocurrir durante el proceso de encriptación y desencriptación.