Javascript/浏览器加密:使用Yubiky
Javascript / Browser enryption: Use Yubikey
假设我想在浏览器中加密数据(通过JavaScript,使用PGP)。由于将密钥存储在浏览器(LocalStorage)中是不保存的,我希望将它们存储在外部设备上,比如YubiKey,它提供PGP加密/解密。
因此,用户编写一些秘密文本,插入他的YubiKey,按下一些按钮,秘密文本进入YubiKey进行加密(而加密的密钥留在YubiKey上,然后返回加密的文本。解密也是如此。
这样的事情在技术上可行吗?如果没有,我还能把加密密钥放在哪里?
目前无法使用浏览器访问此类设备。有一些计划添加这样一个功能,但它仍处于编辑的草稿阶段,因此它可能需要一段时间才能作为标准发布。当然,并不是每个浏览器在成为标准功能时都支持该功能。
关于你的问题,我认为如果你真的需要很好的保护,你可以尝试将密钥存储在服务器上。
第一次生成密钥时,用户可以使用服务器生成的密码和随机GUID创建一种帐户(以确保服务器上不会存在双GUID-我知道几乎不可能出现这种情况,但这也是一个很好的额外保护层)。您可以将GUID存储在客户端(例如localStorage),这样用户就不会每次都被提示输入GUID。但必须注意的是,密钥需要保存在磁盘上的某个位置,以防localStorage被清除。然后,当创建帐户时,密钥将安全地(通过https)传输到服务器,密钥的名称将是生成的GUID。
一旦创建了帐户,并且您希望从服务器接收密钥,浏览器就必须发出ajax请求——如果localStorage中不存在密钥ID,则用户必须提供他/她的密码和密钥ID(GUID)。一旦服务器将keyID与密码匹配,就会返回密钥。您可以使用密码和收到的密钥解密您的文本。
- 在指令控制器中使用$attrs时出现问题
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使用动画实现纸张推车
- 如何在Angular2中使用jQuery插件
- 使用Express捕获参数
- 使用clickToggle并在单击另一个元素时关闭元素
- 如何使用jQuery选择下拉列表的值
- 可以前端maven插件使用节点,npm已经安装
- 使用javascript将动态表从一个html页面打印到另一个html页
- 使用JS将数组转换为json对象
- Javascript/浏览器加密:使用Yubiky