什么方法/算法/库可以安全地加密然后解密 下面的项目是用C++用WinAPI完成的,对于加密/编码,我使用的是CytOc++,但是我对更好的库开放。我需要对电子邮件数据进行加密/编码、传输,然后在另一端解密,以便特权用户可以阅读电子邮件

什么方法/算法/库可以安全地加密然后解密 下面的项目是用C++用WinAPI完成的,对于加密/编码,我使用的是CytOc++,但是我对更好的库开放。我需要对电子邮件数据进行加密/编码、传输,然后在另一端解密,以便特权用户可以阅读电子邮件,c++,encryption,cryptography,C++,Encryption,Cryptography,我最初的想法是使用我的密钥(例如“MYKEY”)使用SHA256加密电子邮件文本。但我想我并不完全理解什么是散列。我知道用SHA256、MD5或AES加密的字符串不可能解密,但我认为如果我用我的特殊密钥(“MYKEY”)加密字符串,那么只要我知道特殊密钥,我就可以解密它。对吗 如果没有,您能否建议一个库、算法或方法,我可以使用它来完成加密/编码电子邮件文本的任务&只有在我有密钥或一些共享密钥可以解密数据时才能解密?SHA256和MD5是单向函数。i、 没有解密。请参阅散列 但在尝试创建安全通信之

我最初的想法是使用我的密钥(例如“MYKEY”)使用SHA256加密电子邮件文本。但我想我并不完全理解什么是散列。我知道用SHA256、MD5或AES加密的字符串不可能解密,但我认为如果我用我的特殊密钥(“MYKEY”)加密字符串,那么只要我知道特殊密钥,我就可以解密它。对吗


如果没有,您能否建议一个库、算法或方法,我可以使用它来完成加密/编码电子邮件文本的任务&只有在我有密钥或一些共享密钥可以解密数据时才能解密?

SHA256和MD5是单向函数。i、 没有解密。请参阅散列

但在尝试创建安全通信之前,您确实需要仔细阅读加密过程


尽管如此,wikipedia有一篇文章专门介绍了SHA256和MD5是单向函数的实现。i、 没有解密。请参阅散列

但在尝试创建安全通信之前,您确实需要仔细阅读加密过程


尽管如此,wikipedia有一篇文章专门讨论实现

,正如Giraffe船长所说,哈希算法不是加密算法(尽管它们都属于对称加密领域)。好的散列函数无法恢复适合生成的散列的消息(除了尝试所有可能的消息以查看它们是否给出相同的散列)。(此外,散列函数具有固定大小的输出,但具有可变大小的输入,这意味着有许多消息提供相同的散列。即使是一对消息提供相同的散列,或一条消息提供给定的散列,也应该很难找到。)

你需要一个加密算法。很可能非对称加密(使用公钥加密,使用私钥解密)是一个好主意

不要发明新的加密数据格式或协议。您会犯错误,从而使您的产品不安全

对于电子邮件加密,请使用OpenPGP()或S/MIME(),或其中的一些子集


然后,您可以使用任何支持必要算法的库,或者一些专门支持这些文件格式的库。

正如Giraffe船长所说,哈希算法不是加密算法(尽管它们都被计算在对称加密领域)。好的散列函数无法恢复适合生成的散列的消息(除了尝试所有可能的消息以查看它们是否给出相同的散列)。(此外,散列函数具有固定大小的输出,但具有可变大小的输入,这意味着有许多消息提供相同的散列。即使是一对消息提供相同的散列,或一条消息提供给定的散列,也应该很难找到。)

你需要一个加密算法。很可能非对称加密(使用公钥加密,使用私钥解密)是一个好主意

不要发明新的加密数据格式或协议。您会犯错误,从而使您的产品不安全

对于电子邮件加密,请使用OpenPGP()或S/MIME(),或其中的一些子集

然后,您可以使用任何支持必要算法的库,或者一些专门支持这些文件格式的库