这个问题有一些变体,但我无法确定问题所在。尝试在 PHP 和 Delphi 中加密/解密我假设我错过了 Delphi 中的一些设置及其与 UTF-8 的关系
使用http://aesencryption.net/作为 PHP 示例,我们试图得到的结果。Image Blow
密码 = 123
密钥 = 测试
128 位
加密到 uuIikEZSC9Sa1HAt/XKfGQ==
我希望能够在 Delphi 中对此进行解密
我正在使用 Delphi XE5
和https://github.com/SeanBDurkin/tplockbox
我可以在 Delphi 中使用 encrypt/DeCrypt 但 PHP 加密版本字符串不同
Delphi加密123为vpdeLlfnxTGrSsa2TpbFvg==
这是 Delphi Encrypt 的一个简单示例
function TForm3.EncryptV2(plainText: UTF8String): String;
var CipherText : string;
FLibrary: TCryptographicLibrary;
FCodec: TCodec;
begin
mmo1.Lines.Add('plaintext = ' + plainText);
FLibrary := TCryptographicLibrary.Create(Self);
try
FCodec := TCodec.Create(Self);
try
FCodec.CryptoLibrary := FLibrary;
FCodec.StreamCipherId := BlockCipher_ProgId;
FCodec.BlockCipherId := Format(AES_ProgId, [256]);
FCodec.ChainModeId := ECB_ProgId; ;
FCodec.UTF8Password := 'test';
FCodec.EncryptString( plainText, CipherText, Tencoding.UTF8 );
FCodec.Burn;
result := CipherText;
finally
FCodec.Free;
end;
finally
FLibrary.Free;
end;
end;
解密
function TForm3.DecryptV2(encryptedText: UTF8String): String;
var plainText : string;
FLibrary: TCryptographicLibrary;
FCodec: TCodec;
begin
FLibrary := TCryptographicLibrary.Create(Self);
try
FCodec := TCodec.Create(Self);
try
FCodec.CryptoLibrary := FLibrary;
FCodec.StreamCipherId := BlockCipher_ProgId;
FCodec.BlockCipherId := Format(AES_ProgId, [256]);
FCodec.ChainModeId := ECB_ProgId; ;
FCodec.UTF8Password := 'test';
mmo1.Lines.Add('Encrypted Text = ' + encryptedText);
FCodec.DecryptString( plainText, encryptedText,Tencoding.UTF8 );
mmo1.Lines.Add('DeCrypted Text = ' + plainText);
result := plainText;
finally
FCodec.Free;
end;
finally
FLibrary.Free;
end;
end;
有人有什么建议吗?