Php 加密存储的图像
我正在准备一个项目,需要以加密格式存储图像。图像将在0.5mb和5mb之间,并且必须保持原始质量 我曾考虑使用base64对它们进行编码,但随后我需要使用一些东西对它们进行加密(SHA1?),并将它们保存为服务器上的文件 有人能给我提供这方面的建议吗?我可以将加密图像存储在哪种文件中Php 加密存储的图像,php,Php,我正在准备一个项目,需要以加密格式存储图像。图像将在0.5mb和5mb之间,并且必须保持原始质量 我曾考虑使用base64对它们进行编码,但随后我需要使用一些东西对它们进行加密(SHA1?),并将它们保存为服务器上的文件 有人能给我提供这方面的建议吗?我可以将加密图像存储在哪种文件中 提前感谢我必须执行类似的任务,将上传到应用程序中的文件加密存储在服务器中,然后当用户需要应用程序中的文件时,在发送到浏览器之前对其进行解密 我不得不这样做,因为我的申请涉及我国法律要求加密存储的特殊类型的数据(家庭
提前感谢我必须执行类似的任务,将上传到应用程序中的文件加密存储在服务器中,然后当用户需要应用程序中的文件时,在发送到浏览器之前对其进行解密 我不得不这样做,因为我的申请涉及我国法律要求加密存储的特殊类型的数据(家庭暴力)。所以我理解OP的情况,不是因为技术原因他需要加密,而是为了遵守法律 我所做的是在服务器上安装OpenSSL,这样我就可以使用它对文件进行AES-256加密,您可以使用
system()
从php执行命令
要加密的命令是:
echo MyPassword | openssl.exe aes-256-cbc -pass stdin -salt -in somefile.pdf -out somefile.pdf
对于解密:
echo MyPassword | openssl.exe aes-256-cbc -pass stdin -d -in somefile.pdf -out decriptedfile.pdf
此命令接受任何原始文件(无论格式如何),解密时会重新创建相同的精确文件,因此不需要base64编码或类似的内容,您将反馈给它们的内容将返回给您
请参阅,了解迁移服务器时可能需要注意的事项。此操作并不简单;您不仅需要加密数据,还需要确保数据安全,以防被盗或服务器入侵;您还需要考虑如果需要更改密钥会发生什么。 要加密图像,最好的选择可能是使用对称算法mcrypt。有几个教程介绍如何做到这一点。看 您需要做的是为图像提供服务并动态解密,而不必将其存储在明文中 现在的问题是在哪里保存密码。最好的总体解决方案是为每个用户提供一个秘密加密密钥,在用户登记时随机生成;而且密钥本身是使用用户密码进行非对称加密的。您可以在RSA中使用
phpseclib
。同样的加密密钥也与管理密码不对称存储
因此,工作流程是:
user_id -- the user ID
resource_id -- the resource ID
encryption -- resource decryption key, encrypted with the user's encryption **key**
要授予对用户U1和资源A的访问权,您必须自己拥有对资源A的访问权以及对U1的加密密钥的访问权。即:
- 管理员访问Users表并恢复UserKeyEncryptedWithAdminKey
- 作为管理员,他可以解密用户密钥
- 以相同的方式访问ResourceTable[A]。ResourceKeyEncryptedWithAdminKey
- 他使用UserKey加密ResourceKey,并将其存储到UserAccessToResource中