有没有一种使用JavaScript或Ajax加密文件上传的方法?如果有,请给我一个示例或链接到有效示例的链接。
有没有一种使用JavaScript或Ajax加密文件上传的方法?如果有,请给我一个示例或链接到有效示例的链接。
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上传文件,浏览器会自动加密数据以进行传输。
(这假设您想保护文件在传输过程中,而不是试图保护文件免受服务器管理员权限的人员攻击)