Una mirada más profunda a la implementación real ayudará a un atacante a comprender la estructura de datos de un volcado de memoria, y de lo que encontré en EncryptorImpl no se ha puesto ningún esfuerzo en ofuscar el mecanismo de almacenamiento de claves Para prolongar el tiempo necesario para la ingeniería inversa el secreto. Entonces no, esta no es una medida efectiva contra la exposición de la memoria.
Permítame proporcionarle un mejor escenario de uso para esta clase:
Como la variable clave es privada, al menos es muy improbable que un desarrollador encuentre su camino respondiendo accidentalmente con la clave a un atacante (por ejemplo, debido a un error en el flujo de control de un controlador de solicitud de servicio web), por lo que hay algunos Utilice esta clase para asegurarse de que el código solo pueda ayudar a descifrar descifrando realmente en segundo plano en lugar de entregar una clave. Una vez que el programa se detiene / se desconecta, un atacante ya no podrá descifrar secretos, y todo el descifrado que ocurrió hasta ese momento (cuando el atacante estaba usando el programa como una especie de oráculo) tuvo la oportunidad de ser registrado, lo cual puede ser relevante en un análisis post mortem para determinar qué datos se han comprometido.