Age*_*man 4 javascript encryption upload html5 file
有没有办法使用javascript或ajax加密文件上传,如果是这样,你能给我一个例子或链接到工作示例吗?
答案是肯定的,有一种方法可以使用javascript或ajax来加密文件上传.您可以使用在浏览器中具有内置本机支持的标准Web API:使用标准File API和WebCrypto API从文件系统获取文件并实际加密它 - 以及索引数据库API(indexedDB)(如果需要)将加密文件存储在浏览器的客户端.工作代码的一个很好的简单示例是上传文件,加密文件,计算哈希并使用indexedDB存储结果.
第一步是input type=file在HTML 中创建元素的正常步骤,并将函数绑定到它以从文件系统获取文件并使用它执行某些操作; 例如,使用onsubmit="my_file_handler".
在那之后,在你的my_file_handler(或任何名称)函数内:
.files[…]它来获取输入文件.定义一个接受加密密钥的函数; 在该功能内:
FileReader对象并使用,例如,.readAsArrayBuffer(…)加载文件crypto.subtle创建新SubtleCrypto对象.digest(…)该SubtleCrypto对象,然后crypto.subtle.encrypt(…)使用该密钥实际加密文件indexedDB.open(…)和朋友打开与数据库的连接并将加密文件放入其中..importKey(…)拿到钥匙,并呼吁在步骤#2你的函数它来处理与它的输入文件并将其存储使用indexedDB.