我正在将C#代码转换为VC++(不支持.net)。我遇到下面的代码行。C++的RSA加密
RSA.VerifyData(hash, "SHA1", signature)
如何做到这一点?这里哈希是加密的信息。签名是从用户端检索的信息。该函数返回一个布尔值。有什么方法可以直接在C++中对char *执行相同的验证?
我正在将C#代码转换为VC++(不支持.net)。我遇到下面的代码行。C++的RSA加密
RSA.VerifyData(hash, "SHA1", signature)
如何做到这一点?这里哈希是加密的信息。签名是从用户端检索的信息。该函数返回一个布尔值。有什么方法可以直接在C++中对char *执行相同的验证?
检查CPVerifySignature或CryptVerifySignature函数 - 可在CryptoAPI(Windows本机)中使用。
有,你可以选择一对夫妇选择从:
的WinAPI cryptography features。显然,只有windows,C和WinAPI风格(我觉得它很痛苦,而且反直觉)。 CAPI是较旧的,而CNG是较新的(对于Vista来说是较新的)。我个人不建议这种解决方案,除非你有非常特殊的要求(1)。
Botan提供了广泛的加密功能,包括RSA签名验证。这是我最喜欢的,它有一个很好的消息管道和过滤器模型,可以轻松地对数据使用多种算法。这个API有点过程性(实质上有一个begin_message和end_message调用来封装数据的实际写入),但是我发现它很直观,易于理解(当然这只是一个意见)。
Crypto++具有不同风格的API。我发现它不那么直观,我总是选择Botan在这个库上。 API似乎更正统,但不那么直接。它似乎没有比Botan更有能力,许多人确实推荐它。
(1)如果你需要由第三方评审(非常严重的使用情况,如银行软件为例)图书馆,你可能想选择CAPI毕竟,因为它允许您使用第三方审查Cryptography Service Provider。
是的,你需要找到一个C++ RSA库。 –
您正在寻找CAPI或CNG。 – SLaks