簡體   English   中英

使用google / tink進行密碼加密

[英]Password encryption using google/tink

美好的一天,我使用google / tink加密密碼,使用以下步驟存儲在數據庫中:

// 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);

它基本上將密碼轉換為字節,但是當我將其轉換為字符串以存儲到數據庫中時,它以這種格式存儲加密的密碼: - @~ k D߶{׼

但我想使用11As7737Cs9ue9oo09加密以11As7737Cs9ue9oo09格式存儲密碼。

有什么辦法嗎?

Manish,您可能不想加密密碼。 你想哈希他們。 Tink還不支持密碼哈希,但如果有足夠的興趣,我們可以添加支持。

您能否通過https://github.com/google/tink/issues/new申請功能請求?

我同意這里的每個人,你不應該明確存儲密碼。

但是,要回答你的問題,因為我認為當你得到一些密文並且字符串不可讀時這是一個常見的問題。 假設您希望存儲加密且可讀的非密碼數據。 您需要對您的密文進行Base64編碼。

當您從數據庫中檢索Base64編碼數據時,您需要對String進行Base64解碼,然后在解密過程中運行它。 以你的榜樣為基礎,

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM