需要一个允许我使用 RSA 加密/解密某些文本的 Delphi 组件/库

发布于 2024-11-27 13:12:03 字数 311 浏览 0 评论 0原文

我需要一个组件或库(尽可能简单,没有 DLL 就更好了)来使用 OpenSSL 生成的公钥来加密文本、解密另一个文本。

我以为我会使用LockBox(新版本,v3),但根据这里的其他用户的说法,它不如旧版本,更重要的是,不能使用其他库中的密钥。 (请参阅OpenSSL 的 PEM 文件和 Lockbox3 互操作性

我使用的是 Delphi 7。有什么建议吗?

I need a component or library (as simple as possible, and no DLLs would be great) to encrypt a text, decrypt another, using public keys generated by OpenSSL.

I thought I'd use LockBox (the new version, v3), but according to other users here it's not as good as the old version, and more importantly, cannot use keys from other libraries. (see OpenSSL's PEM file and Lockbox3 interoperability)

I'm using Delphi 7. Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

叶落知秋 2024-12-04 13:12:03

我们在 Delphi 2010 中使用 Lockbox 2,效果非常好。我想它也应该适用于 Delphi 7。这是一个代码示例:

unit LBRSA; 

interface

uses
  LbCipher,
  LbRSA,
  LbString,
  LbUtils;

  function DecryptRSA(const CipherText: String): String; overload; overload;
  function DecryptRSA(const CipherText, Exponent, Modulus: String): String; overload;

implemention


function EncryptRSA(const ClearText, Exponent, Modulus: String): String;
var
  RSA: TLbRSA;
begin
  RSA := TLbRSA.Create(nil);
  try
    RSA.PublicKey.ExponentAsString := Exponent;
    RSA.PublicKey.ModulusAsString := Modulus;

    Result := RSA.EncryptStringW(ClearText);
  finally
    FreeAndNil(RSA);
  end;
end;

function DecryptRSA(const CipherText, Exponent, Modulus: String): String;
var
  RSA: TLbRSA;
begin
  RSA := TLbRSA.Create(nil);
  try
    RSA.PrivateKey.ExponentAsString := Exponent;
    RSA.PrivateKey.ModulusAsString := Modulus;

    Result := RSA.DecryptStringW(CipherText);
  finally
    FreeAndNil(RSA);
  end;
end;

end.

Lockbox 包含一个演示应用程序,可让您生成公钥和私钥。

We use Lockbox 2 in Delphi 2010 and it works great. I guess it should also work with Delphi 7. Here's a code sample:

unit LBRSA; 

interface

uses
  LbCipher,
  LbRSA,
  LbString,
  LbUtils;

  function DecryptRSA(const CipherText: String): String; overload; overload;
  function DecryptRSA(const CipherText, Exponent, Modulus: String): String; overload;

implemention


function EncryptRSA(const ClearText, Exponent, Modulus: String): String;
var
  RSA: TLbRSA;
begin
  RSA := TLbRSA.Create(nil);
  try
    RSA.PublicKey.ExponentAsString := Exponent;
    RSA.PublicKey.ModulusAsString := Modulus;

    Result := RSA.EncryptStringW(ClearText);
  finally
    FreeAndNil(RSA);
  end;
end;

function DecryptRSA(const CipherText, Exponent, Modulus: String): String;
var
  RSA: TLbRSA;
begin
  RSA := TLbRSA.Create(nil);
  try
    RSA.PrivateKey.ExponentAsString := Exponent;
    RSA.PrivateKey.ModulusAsString := Modulus;

    Result := RSA.DecryptStringW(CipherText);
  finally
    FreeAndNil(RSA);
  end;
end;

end.

Lockbox includes a demo app that lets you generate the public and private keys.

┼── 2024-12-04 13:12:03

我们的 SecureBlackbox 可以完成这项工作。支持德尔福7。还支持 PEM 格式的证书和密钥(如果您有以 PEM 编码的原始 RSA 密钥,则需要编写几行代码来解开它,并且通过一个函数调用从 PEM 加载 X.509 证书) 。

Our SecureBlackbox will do the job. Delphi 7 is supported. Certificates and keys in PEM format are supported as well (if you have raw RSA key encoded in PEM, you will need to write a couple of lines of code to unwrap it, and X.509 certificates are loaded from PEM with one function call).

汐鸠 2024-12-04 13:12:03

这是一个手册,如何将 libeay32.dll 从 openssl 导入到 delphi 中:

http:// www.disi.unige.it/person/FerranteM/delphiopenssl/

他们使用 RSA 进行文件加密/解密:

http://www.disi.unige.it/person/FerranteM/delphiopenssl/RSAEncrypt .html

Here is a manual, how to import libeay32.dll from openssl into delphi:

http://www.disi.unige.it/person/FerranteM/delphiopenssl/

They have file encrypt/decrypt using RSA:

http://www.disi.unige.it/person/FerranteM/delphiopenssl/RSAEncrypt.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文