如何通过用户提供的密码生成Tink密钥

时间:2019-02-23 00:15:31

标签: tink

我要store a keyset,并希望使用由用户提供的“主密码”产生的密钥对文件进行加密。当然,稍后,我希望使用相同的主密码,可以通过解密文件来load that keyset

似乎我需要一个Aead,我可以使用KeysetHandleAeadFactory.getPrimitive(keysetHandle)生成它。但是,如何从“主密码”产生KeysetHandle

(在这个问题的背景下,不是选择从密钥管理系统获取密钥,而是从主密码“凭空”生成密钥)。

1 个答案:

答案 0 :(得分:0)

可以按如下方式创建import requests import sys import webbrowser import bs4 import os,zipfile from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_exe = 'chromedriver.exe' ui_search = input("Search google: ") print('Googling...') #display text while downloading if len(sys.argv) > 1: res = requests.get('http://google.com/search?q=' + ' '.join(sys.argv[1:])) elif len(ui_search) > 1: res = requests.get('http://google.com/search?q=' + ' '.join(ui_search)) res.raise_for_status() #Retrieve top search result links. soup = bs4.BeautifulSoup(res.text, 'html.parser') #type(soup) #Open a browser tab for each result linkElems = soup.select('.r a') numOpen = min(10, len(linkElems)) for i in range(numOpen): print(linkElems[i].get('href')) # webbrowser.open('http://google.com' + linkElems[i].get('href')) chop = webdriver.ChromeOptions() chop.add_extension('fdgfkebogiimcoedlicjlajpkdmockpc-1.1.6-Crx4Chrome.com.crx') driver = webdriver.Chrome(executable_path=chrome_exe, chrome_options=chop) #driver.get("'http://google.com' + linkElems[i].get('href')") if driver: print(i, ":", linkElems[i].get('href')) popup = driver.switch_to_alert(); #print(popup.get_text) (在Scala中完成):

Aead

一些评论:

  • 我希望密钥基于32位摘要,但是Tink在这种情况下选择的密码在提供32位密钥时会引发异常,因此缩短为16位密钥。
  • 从哈希弱点看来,shortening the key this way is ok