Javascript加密文件上传
Javascript Encrypted File Upload
是否有办法使用javascript或ajax加密文件上传,如果是这样,你能给我一个例子或链接到工作示例?
答案是肯定的,有一种方法可以使用javascript或ajax加密文件上传。您可以使用浏览器中内置本机支持的标准Web API:使用标准File API和WebCrypto API从文件系统中获取文件并对其进行实际加密,同时使用索引数据库API (indexedDB)(如果您愿意)将加密的文件存储在浏览器的客户端。上传文件,加密,计算哈希值并使用indexedDB存储结果是一个很好的简单示例。
如何做的简短总结
第一步只是在HTML中创建input type=file
元素的正常步骤,并将函数绑定到它以从文件系统中获取文件并对其进行操作;例如,使用onsubmit="my_file_handler"
。
之后,在my_file_handler
(或任何名称)函数中:
- 使用
.files[…]
从中获取输入文件。 -
定义一个接受加密密钥的函数;在函数内:
- 创建一个新的
FileReader
对象,并使用.readAsArrayBuffer(…)
来加载文件 - 使用
crypto.subtle
创建一个新的SubtleCrypto
对象 - 使用
.digest(…)
和SubtleCrypto
对象,然后使用crypto.subtle.encrypt(…)
使用该密钥加密文件 - 使用
indexedDB.open(…)
和好友打开数据库连接,并将加密文件放入其中。
- 创建一个新的
- 使用
.importKey(…)
获取密钥,并调用步骤#2中的函数来处理输入文件,并使用indexedDB
存储。
使用HTTPS URL上传文件,浏览器会自动加密传输数据。
(这假设您想要保护传输中的文件,而不是试图保护文件不受服务器上具有管理员权限的人的访问)
相关文章:
- 客户端PGP文件加密
- 用javascript(Phonegap应用程序)加密文件
- SJCL加密导致文件大小错误
- 加密-js - 读取和解密文件
- 节点.js使用 AES 加密大文件
- 使用SJCL客户端加密文件
- 如何从我的web应用程序中的Java脚本文件中获得加密的密码
- CryptoJS解密C#DES加密文件失败
- JavaScript:使用openpgp.js解密GnuPG加密文件的内容
- 使用HTML5文件API存储/检索文件中的加密文本
- 使用JavaScript解码PKCS12文件并从中获得加密私钥的最佳方法
- 我可以加密一个javascript文件,仍然让它在客户端上运行吗?
- 自动下载加密文件
- 我应该如何使用客户端JavaScript加密大文件
- 加密的Flash容器文件中的内容比普通的HTML/Javascript更安全吗?
- Javascript加密文件上传
- 客户端(javascript)文件上传加密
- 从javascript访问IndexedDB作为文件进行加密
- 使用node.js通过HTTP将文件加密为字符串
- 如何加密文件下载路径