0
我想制作一个Web应用程序,用户可以在这个平台上用用户名和密码登录(我想制作一个MySQL数据库来盯住用户名和密码)。Charm加密的Web应用程序
当用户登录后,他从他的计算机中选择一个文件并在服务器上发送该文件。
我想要加密这个文件给一组用户(我想用Charm Crypto使用HybridABE加密技术)。
现在我有这些架构/编程问题。
假设我们有这样的计划:
from charm.toolbox.pairinggroup import PairingGroup,GT
from charm.adapters.abenc_adapt_hybrid import HybridABEnc as HybridABEnc
from charm.schemes.abenc.abenc_waters09 import CPabe09
group = PairingGroup('SS512')
cpabe = CPabe09(group)
hyb_abe = HybridABEnc(cpabe, group)
policy = '((ONE or THREE) and (TWO or FOUR))'
msg = "hello world this is an important message."
(master_secret_key, master_public_key) = hyb_abe.setup()
attr_list = ['THREE', 'ONE', 'TWO']
secret_key = hyb_abe.keygen(master_public_key, master_secret_key, attr_list)
cipher_text = hyb_abe.encrypt(master_public_key, msg, policy)
decrypted_msg = hyb_abe.decrypt(master_public_key, secret_key, cipher_text)
我在哪里可以节省主私钥和主公开密钥?在像文件一样的目录服务器上?在数据库上?
我在哪里可以保存用户的密钥?
简单明了。有一件事:当你说用户密钥必须给予用户时,你如何发送这些密钥?以及您如何/在哪里可以存储这些密钥?你能给我一个第二点的例子吗? – JLo
密钥通常由多个值组成(例如配对组的元素)。这些可分别序列化为字节和Charm提供[必要的功能来执行此操作](http://stackoverflow.com/a/34447301/1816580)。现在,面临的挑战是将多个序列化值放入(文件)格式。有无数的方法来做到这一点。你可以将序列化的值放入一个不同的对象,只使用本地Python类型,然后[pickle it](https://docs.python.org/2/library/pickle.html)。你可以编写自己的文件格式。你可以使用类似Protobuf的东西。 –
你能解释一下用户如何用主公钥加密数据客户端?我正在开发一个Web应用程序,我不知道如何使用从Charm Crypto(服务器端)发布的密钥来加密数据。我可以使用JavaScript吗? (客户端我不能使用Pyhton,因为它是一个Web应用程序)。感谢巡演支持。 – JLo