Encryption / decryption of binary data in the browser

本秂侑毒 提交于 2020-01-05 07:47:03

问题


I am working on a project that requires a client to de-crypt binary data received from the server. The scenario is that a server has binary data in a compressed and encrypted form. The browser needs to receive this data (files), decrypt and decompress them and then download them to a user-specified location on the local machine. I understand that their are several limitations of doing this in the browser -

  1. Does Javascript have access to the local storage. Can I write/stream multiple files to a user-specified location on the hard drive? If so, what APIs to look for.

  2. Can Javascript (or any other technology) be used in the browser to decrypt (AES-256) and decompress this data stream within the browser?

Can these issues be solved using the FileAPI of HTML5?

EDIT:
Replaced SHA2 with AES. We are using SHA2 for integrity check, not for encryption.That was a typo.


回答1:


  1. You can't directly access the user's file system. Though, the HTML5 file system API can be used to save data in a virtual, sandboxed filesystem.
  2. CryptoJS has an implementation for SHA-2

To receive the data from the server, I suggest to use XMLHttpRequest with responseType = "arraybuffer".




回答2:


I suggest you use a javascript cryptography library, here is one: http://code.google.com/p/crypto-js/




回答3:


SHA-2 is not a means of encrypting or decrypting data, its a hash algorithm, it is used to determine if data has been tampered with. Encryption algorithms are: DES, 3-DES, AES etc.

I suspect you need to generate a hash on the data you have and compare with the hash you have received.



来源:https://stackoverflow.com/questions/11666165/encryption-decryption-of-binary-data-in-the-browser

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!