我已经开发了一个C应用程序,其组件使用RSA 2048密钥对小的纯文本进行加密。 加密是使用Windows增强加密api完成的。 它似乎可以正常工作,并向文件输出128字节的密文。

我不知道密文采用的是哪种加密形式(是否被填充,编码等)(我只是导入公共密钥并用它加密(没有其他设置))

无论如何,我需要能够使用带有php脚本的私钥将密文解密为纯文本。

我在测试过程中尝试通过命令行使用openssl,但是得到的数据大于mod len错误。

在尝试解密密文之前,是否需要对密文进行任何转换,或者是否需要使用openssl_private_decrypt指定任何设置。 (我目前拥有pem格式的私钥,但可以将其转换为更多格式)

此外,对于其他比openssl更有效的php库的建议也将不胜感激。

谢谢。

===============>>#1 票数:1

如果要使用OpenSSL解密数据,请逐字节反转数据。 这是因为OpenSSL将它们视为大端字节。

这个问题可能对您有帮助。 我在计算哈希时遇到了类似的问题。 当我反转字节顺序时,它可以在OpenSSL中完美运行。 因此,这可能对您有帮助。

  ask by BluePoland translate from so

未解决问题?本站智能推荐:

2回复

无法将用php openssl生成的RSA密钥导入Windows CryptoAPI

在将用php openssl生成的密钥导入CryptoAPI时遇到问题 我在php中成功创建了密钥对,并用它加密/解密了一个字符串-没问题 然后,我用Delphi编写了一个程序,该程序应将私钥和公钥导入CryptoAPI。 我在互联网上找到了一些示例RSA私有密钥,它完美地与我的
2回复

WinAPI - > CryptoAPI - > RSA,使用私有加密,使用public解密

美好的一天。 我需要教Windows CryptoAPI使用密钥的私有(非公共)部分加密消息,并使用public解密。 这对于向用户提供他们可以阅读但无法更改的信息是必要的。 它现在如何运作: 我得到了背景 生成密钥对 加密(问题在这里。“密钥” - 密钥对,
1回复

使用OpenSSL API实现Windows CryptoAPI CryptDeriveKey

我有一个CryptoAPI代码,使用AES-128加密\\ decrypt给定数据,使用SHA-256从密码派生密钥。 如何编写OpenSSL等效实现,以便用它加密数据,然后用CryptoAPI解密,反之亦然? 尝试将EVP_BytesToKey与EVP_aes_128_cbc()和
1回复

openssl与windows capi

哪个更好的使用openssl或windows capi进行ecnryption问题是什么是两者的pro和con列表。 如果有可能在openssl上编写我的加密程序并使用windows capi解密它没有问题或者存在一些问题。
2回复

创建加密API密钥的最佳方法

我的应用程序中有一个开放的API,我想为其提供访问密钥。 传入的信息将是用户ID,资源ID和更新值。 我想要每个资源一个API密钥。 优选地,我希望能够仅使用提供的数据而不对任何类型的数据库进行检查(非常简单,非常快速!)来验证传入请求的真实性。 如果我使用md5从资源ID,用户
2回复

如何将使用openssl命令行创建的会话密钥导入Windows CryptoAPI

我想导入会话密钥并在Windows CryptoAPI中解密数据。 openssl命令创建的会话密钥和加密数据。 在Linux上: session.dat看起来像这样: 我想在Windows应用程序中在text.enc解密此数据。 如何使用CryptImportKe
1回复

为什么我的解密功能将密文更多地加密而不是解密呢?

我创建了可以加密找到的文件的程序,然后可以通过CryptDecrypt函数对其进行解密。 该函数可以成功执行,但是与其将文件解密回纯文本,它还使文件看起来更加加密。 我同时放了CryptEncrypt函数和CryptDecrypt函数,这样您就可以更清楚地了解我在做什么。 我正在使用W
1回复

Windows加密中的rsa加密和openssl中的解密

我在“ OpenSSL”和“ Windows CryptoAPI”之间交换公钥时遇到问题。 公钥以pem格式从OpenSSL导出。我的程序是用c ++编写的。 我得到了公共密钥,并通过“ CryptoAPI”加载了它。 加载公钥后,我对一些数据进行加密并将其发送到其他应用程序。 另一个应
2回复

如何使用Win32 CryptoAPI确定S / MIME消息的哈希和加密算法?

CryptVerifyMessageSignature和CryptDecryptMessage函数允许我检查S / MIME签名是否有效(或在CryptDecryptMessage情况下解密加密的数据),并返回用于签名(或加密)的证书。 但是,没有有关实际用于签名和加密的算法的信息。 我如何
1回复

CryptDecrypt()无法解密某些块C ++

我目前正在使用Windows API使用C ++构建简单的加密/解密系统。 我相信我已经成功使CryptEncrypt()能够工作(AES_128)来加密文件。 但是,当我使用CryptDecrypt()解密文件时,前16个字节已损坏,然后在4000个字节(这是我从ReadFile()提