随_心 2013-08-18 06:01 采纳率: 50%
浏览 4537
已采纳

网页上传文件时怎么把文件加密后上传

我想在html页面选择一个上传文件,在js获得这个文件的信息,然后对这个文件进行对称加密后再上传。初步想法是把文件是以数据流发到后台再生成一个完整文件的,但怎么获得这个文件的数据流?另一个想法是把先把文件转成字符串,然后加密,再把字符串生成文件2,然后上传,但怎样才能转成字符串并且把加密的字符串转回文件?

请大神解答,感激不尽
  • 写回答

1条回答

  • todd_leftcode 2013-08-18 10:36
    关注

    在Web架构中如果要保密, 最简单最安全的方法是使用HTTPS协议。

    用js获取文件数据流是可以的, 但需要新版浏览器的支持, 通过 HTML5 File API 可以作到。 生成文件2可能有些麻烦, 这需要用户额外的授权。 通过 XMLHttpRequest (Level 2) 可以直接上传二进制数据。

    最复杂的是对称加密, js 缺乏内置的加密API, 自己实现虽不是完全不可能,但恐怕难度较大,或许网络上有现成的开源代码, 可以去找一找。

    关键问题是, 如何分发密钥? 通过明文分发肯定是没有意义的, 可能的方案是: 使用用户登录的密码做为种子密钥, 但随之而来的问题是如何保护用户的密码(不能明文发送), 所以这又需要使用kerberos之类的方案解决。

    最终HTTPS方案完美胜出

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3