现在的邮件内容本来就是用aes_encrypt加密的,它对每个收件人随机一个不同的aes_key,所以网络上有很多份不同加密的邮件内容。
我是先用一个随机key( key1)对邮件内容做aes_encrypt加密,再对每个收件人用一个不同的随机key对key1做aes_encrypt加密。这样只有一分加密的邮件了。
不同的收件人用自己的 private key解密就能拿到 key1
auto priv_dh_key = fc::ecc::private_key::generate();
em.dh_key = priv_dh_key.get_public_key();
auto aes_key = priv_dh_key.get_shared_secret( to );
em.data = aes_encrypt( aes_key, fc::raw::pack(*this) );
我理解是不是这样,原来对每个人都发送单独一份邮件内容,N个人网络上就有N份Copy?
楼主的做法加入AES这一环节,相当于把邮件内容加密的过程增加了一个环节,对密钥而非对邮件内容做非对称加密,毕竟密钥会更短,我觉得还是有用的,尤其是以后考虑到邮件列表的支持,收件人可能会很多,但是增加了AES这一环节会不会削弱安全性?