我需要将加密和专用数据发送到移动应用程序(ios / android),假设应用程序未连接到互联网。
我目前的想法是通过包含加密数据的QRCode发送数据。 出于明显的安全原因,我不想在双方使用对称加密和“共享秘密”。
我是加密的初学者; - )
我认为可以接受的是,应用程序生成16个字符,用户可以将其输入到Web表单中,然后下载专用于此设备的QRCode并加密。
然后我的感觉是我正在寻找一个不对称的算法,可以从16个字符开始。
应用程序知道服务器公钥是可以接受的,但应用程序不可能发送更多16char来共享其本地生成的公钥。
有什么想法吗?
答案 0 :(得分:0)
您的16个字符听起来像是一次性密码,您可以从中获得对称加密密钥。由于它是一次性密码(除非用户一次又一次地重复使用此密码),因此使用它的风险并不大。此外,您不要在服务器上存储此密码(或派生密钥)以防止泄漏。
可以使用PBKDF function导出密钥。用户密码的长度是最重要的 - 它必须尽可能长(16个字符是非常弱的密码)。