2012-01-12 26 views
0

在我的网站上,我的服务器将回复原始数据(使用密码加密的Jpeg图像),当浏览器收到它时,我可以将数据解密(使用相同的密码)数据并显示为使用JavaScript的图像。数据以Javascript中的图像

+0

附注:如果您将密码发送到客户端 - 我可能会从各种调试器(即Firebug和Google Chrome开发工具)中找到它,所以如果您要这样做保护图像 - 它可能不会达到你想要的.... – Amadiere 2012-01-12 13:20:59

+0

不,我不会,只有那些已经知道密码才能解密它,在我的方式密码永远不会通过网络发送,只有图像将被发送通过网络。 – VibeeshanRC 2012-01-12 13:22:04

+0

这是什么问题? – ComFreek 2012-01-12 13:32:18

回答

3

有什么意义?

仅当从服务器传输到客户端时,图像才会被“保护”。另外,要按照描述对密码进行解密,密码将保存在客户端的某个地方(以javascript表示)。所以每个人都可以看到密码和算法。

如果您想在transmision期间保护数据,只需通过https访问它。

+1

我同意。在传输过程中,SSL(例如https)是一种更好的保护数据的方式,它已在浏览器中为您实施,使用起来也很简单。 – jfriend00 2012-01-12 14:37:39

0

首先请考虑一下您的设计,并确保这是您真正想要的方式。也许用https或htaccess保护的普通登录系统会更合适。

如果你真的想这样做,您所描述的方式,我会做下列方式:

  • 的图像转换为Base64格式(wikipedia article),因为用JavaScript处理的二进制数据是讨厌。
  • 然后用AES加密您的图像和强大的关键
  • 结果保存在数据库中
当用户需要访问的图像,你应该

  • 通过HTTPS发送的加密图像

  • 让他在HTML输入字段中输入密钥(或将被散列的密码,例如用SHA512),并用JavaScript读取它
  • 使用JavaScript AES库对图像进行解密,例如http://point-at-infinity.org/jsaes/
  • 将您的img标签的src属性更改为解密后的base64流。