首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用google/tink进行密码加密

使用google/tink进行密码加密
EN

Stack Overflow用户
提问于 2018-05-08 17:27:46
回答 2查看 1.8K关注 0票数 4

您好,我已经使用google/tink加密了密码,并将其存储在数据库中,步骤如下:

代码语言:javascript
复制
// 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);

它基本上将密码转换为字节,但当我将其转换为字符串以存储到DB中时,它以以下格式存储加密的密码:-�@~�k�D߶{׼�

但我希望以类似11As7737Cs9ue9oo09的格式存储密码,并使用tink加密。

有什么办法可以做到吗?

EN

回答 2

Stack Overflow用户

发布于 2018-05-24 23:08:45

曼尼什你可能不想加密密码。您希望对它们进行哈希处理。Tink还不支持密码散列,但如果有足够的兴趣,我们可以添加支持。

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

票数 6
EN

Stack Overflow用户

发布于 2019-02-24 01:10:17

我同意这里的每个人,你不应该以明文存储密码。

然而,回答你的问题,因为我认为这是一个常见的问题,当你得到一些密文,字符串是不可读的。假设您希望存储加密的、可读的非密码数据。您需要对密文进行Base64编码。

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

代码语言:javascript
复制
String readable = new String(java.util.Base64.getEncoder().encode(cipherText));

byte[] bytesToDecrypt = java.util.Base64.getDecoder().decode(readable.getBytes());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50230326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档