有没有人有一个Delphi/Pascal示例来调用下面的OpenSSL函数...
我特别感兴趣的是:
procedure EVP_CIPHER_CTX_init(a: PEVP_CIPHER_CTX);
function EVP_CIPHER_CTX_cleanup(a: PEVP_CIPHER_CTX): cint;
function EVP_CIPHER_CTX_set_key_length(x: PEVP_CIPHER_CTX; keylen: cint): cint;
function EVP_CIPHER_CTX_ctrl(ctx: PEVP_CIPHER_CTX; type_, arg: cint; ptr: Pointer): cint;
//
function EVP_EncryptInit(ctx: PEVP_CIPHER_CTX; const chipher_: PEVP_CIPHER;const key, iv: PByte): cint;
function EVP_EncryptUpdate(ctx: PEVP_CIPHER_CTX; out_: pcuchar;outlen: pcint; const in_: pcuchar; inlen: cint): cint;
function EVP_EncryptFinal(ctx: PEVP_CIPHER_CTX; out_data: PByte; outlen: pcint): cint;
function EVP_DecryptInit(ctx: PEVP_CIPHER_CTX; chiphir_type: PEVP_CIPHER;const key, iv: PByte): cint;
function EVP_DecryptUpdate(ctx: PEVP_CIPHER_CTX; out_data: PByte;outl: pcint; const in_: PByte; inl: cint): cint;
function EVP_DecryptFinal(ctx: PEVP_CIPHER_CTX; …Run Code Online (Sandbox Code Playgroud) 我正在实施XML数字签名.我从小步骤开始,所以现在我想解决SHA-1哈希的问题.
在SO中有很多关于此的问题:
......可能还有更多.但是,我正在使用Delphi XE.到目前为止,我已经试过的Lockbox 2(两个Songbeamer和Sourceforge的版本),锁箱3,DCPCrypto2和其他一些人(哈希值是一个易于使用的单位,使用Windows加密功能)
我准备了一个小型试验台,它给了我以下内容:
LockBox2
FAILED: 1 ('abc')
Got: '9f04f41a848514162050e3d68c1a7abb441dc2b5'
Expected: 'a9993e364706816aba3e25717850c26c9cd0d89d'
FAILED: 2 ('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq')
Got: '51d7d8769ac72c409c5b0e3f69c60adc9a039014'
Expected: '84983e441c3bd26ebaae4aa1f95129e5e54670f1'
Run Code Online (Sandbox Code Playgroud)
LockBox3
FAILED: 1 ('abc')
Got: '9f04f41a848514162050e3d68c1a7abb441dc2b5'
Expected: 'a9993e364706816aba3e25717850c26c9cd0d89d'
FAILED: 2 ('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq')
Got: '51d7d8769ac72c409c5b0e3f69c60adc9a039014'
Expected: '84983e441c3bd26ebaae4aa1f95129e5e54670f1'
Run Code Online (Sandbox Code Playgroud)
DCPCrypto2
FAILED: 1 ('abc')
Got: '9f04f41a848514162050e3d68c1a7abb441dc2b5'
Expected: 'a9993e364706816aba3e25717850c26c9cd0d89d'
FAILED: 2 ('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq')
Got: '51d7d8769ac72c409c5b0e3f69c60adc9a039014'
Expected: '84983e441c3bd26ebaae4aa1f95129e5e54670f1'
Run Code Online (Sandbox Code Playgroud)
哈希
Test 1 passes
Test 2 passes
Run Code Online (Sandbox Code Playgroud)
您是否已成功在Delphi XE下编译提到的库并使它们具有适当的值?我对DCPCrypt2 SelfTest程序特别感兴趣.
编辑:我已经用固定的源代码添加了这个答案.谢谢大家的帮助,非常感谢.
我的Delphi应用程序使用TurboPower LockBox 3使用AES 256加密明文信息.我现在想用PHP解密这些信息.但TurboPower LockBox 3存在一些互操作性问题.
有关详细信息,请查看LockBox 3作者的帖子:
http://lockbox.seanbdurkin.id.au/tiki-view_forum_thread.php?comments_parentId=363&topics_offset=1
和Stackoverflow上的类似帖子
在LockBox 3中,在加密期间,您设置密码.然后将此密码用作种子以生成密钥和iv.那么有没有人能够模仿PHP方面的密钥生成方法?或者有什么方法可以让LockBox 3生成Key/IV并将其放入我的PHP代码中以便解密文件?
delphi ×3
aes ×1
cryptography ×1
delphi-xe ×1
encryption ×1
freepascal ×1
lockbox-3 ×1
openssl ×1
pascal ×1
php ×1
sha1 ×1