MD5和SHA是散列函数,它们从一堆数据中创建指纹 - 固定长度表示.例如,它们被广泛用作检查许多开源产品的ISO映像下载一致性的方法,但这意味着您可以使用它们从任何字节选择中创建指纹.所以他们不加密.
如果要加密,则应检查加密算法.现在我认为最可行的是AES(高级加密标准),如果你寻找对称加密算法(例如,加密和解密的密钥相同或容易相互计算)或RSA,如果你寻找不对称(你有2个密钥 - 公共和私有,以及从公共计算私钥是一项艰巨的任务).
如果您要创建数字签名,您可能需要检查DSA(数字签名算法)和ECDSA(DSA over椭圆曲线)等内容.请注意,非对称算法在扩展精度的数字上工作 - 如512,1024,2048位等.您需要可以处理此类数字的特殊库.如果您使用C++,我可以建议您尝试使用Crypto ++.找到类似其他语言的东西.
我希望这对你有用.