使用google / tink进行密码加密

时间:2018-05-08 09:27:46

标签: java password-encryption tink

美好的一天,我使用google / tink加密密码,使用以下步骤存储在数据库中:

t

它基本上将密码转换为字节,但是当我将其转换为字符串以存储到数据库中时,它以这种格式存储加密密码:// 1. Generate the key material. KeysetHandle keysetHandle = KeysetHandle.generateNew(AeadKeyTemplates.AES128_GCM); // 2. Get the primitive. Aead aead = AeadFactory.getPrimitive(keysetHandle); // 3. Use the primitive to encrypt a plaintext, byte[] ciphertext = aead.encrypt(plaintext, aad);

但我想使用tink加密以-�@~�k�D߶{׼�格式存储密码。

有什么办法吗?

2 个答案:

答案 0 :(得分:5)

Manish,您可能不想加密密码。你想哈希他们。 Tink还不支持密码哈希,但如果有足够的兴趣,我们可以添加支持。

您可以在https://github.com/google/tink/issues/new申请功能请求吗?

答案 1 :(得分:0)

我与在座的每个人都同意,您不要以明文形式存储密码。

但是,回答您的问题是因为我认为当您获得一些密文并且字符串不可读时,这是一个常见的问题。假设您要存储加密且可读的非密码数据。您将需要对密文进行Base64编码。

当您从数据库中取回Base64编码的数据时,您将需要对Base64进行解码,然后在解密过程中运行它。以您的示例为基础,

String readable = new String(java.util.Base64.getEncoder().encode(cipherText));

byte[] bytesToDecrypt = java.util.Base64.getDecoder().decode(readable.getBytes());