java - 基于用户输入 key 的加密

标签 java encryption password-protection password-encryption

上下文: Multi-Tenancy 应用

特性:敏感数据加密

故事: 作为租户的管理员,我想使用我自己的密码或密码短语来加密敏感数据,这样我(而且只有我)可以完全控制所使用的 key 。

验收标准:

  1. 每个租户的管理员应该能够定义用于加密的密码或密码
  2. 只有提供原始密码或密码短语的租户管理员才应该知道 key
  3. 租户管理员提供密码或通行短语后,应将其安全存储

我的问题

  1. 到目前为止,我们一直在使用对称 key 加密,并在应用程序中硬编码应用程序范围的 key 。如果每个租户都想使用自己的 key ,这将不再有效。我们如何让每个用户定义自己的 key ?
  2. 如何以及在哪里存储 key ?
  3. 将密码/通行短语存储在证书中是一个有效的选择吗?如果是,那么如何保护 keystore ?

最佳答案

在不知道 key 的情况下无法加密/解密。否则,使用 key 派生函数 (PBKDF2) 的 PBE 似乎是一个明确的案例。您可以使用非对称加密,但它只会在您的用例加密期间保护私钥。

关于java - 基于用户输入 key 的加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10391505/

相关文章:

java - 通过 Google App Engine 的 Google Drive API

java - JTable不显示

java - 为什么我们在使用 ContextMapper 时不必为 ldap 用户指定对象类?

php - 使用 X509 私钥签署 xml 数据类型

java - 使用 BouncyCaSTLe 创建 key 对证书并使用外部 CA 对其进行签名

PHPMailer 受密码保护的附件

java - 使用java工具/scala main函数运行scala程序

php - 如何将敏感数据安全地存储在 MySQL 数据库中?

java - 操纵密码

java - 简单的 Android 密码检查器不起作用