1
A
答えて
7
いくつかの時間前に私はこのコードを書いた、うまくいくはずです。
uses
System.Security.Cryptography,
System.Text;
type
TDynamicArrayOfByte = array of Byte;
function Encrypt(StrtoEncrypt, PK: string): TDynamicArrayOfByte; // pk, must be of a string of 32 characters
var
miRijndael: Rijndael;
encrypted: TDynamicArrayOfByte;
toEncrypt: TDynamicArrayOfByte;
bytPK: TDynamicArrayOfByte;
i: integer;
begin
Result := nil;
miRijndael := System.Security.Cryptography.RijndaelManaged.Create;
try
toEncrypt := System.Text.Encoding.UTF8.GetBytes(StrtoEncrypt);
bytPK := System.Text.Encoding.UTF8.GetBytes(PK);
miRijndael.Key := bytPK;
miRijndael.GenerateIV;
encrypted := (miRijndael.CreateEncryptor()).TransformFinalBlock(toEncrypt, 0, Length(toEncrypt));
setlength(result, Length(miRijndael.IV) + Length(encrypted));
for i:=0 to Length(miRijndael.IV)-1 do
result[i] := miRijndael.IV[i];
for i:=0 to Length(encrypted)-1 do
result[i + Length(miRijndael.IV)] := encrypted[i];
finally
miRijndael.Clear();
end;
end;
function DesEncrypt(BufferEncrypted: TDynamicArrayOfByte; PK: string): string; // pk, must be of a string of 32 characters
var
miRijndael: Rijndael;
encrypted: TDynamicArrayOfByte;
tempArray: TDynamicArrayOfByte;
bytPK: TDynamicArrayOfByte;
i : integer;
begin
Result := '';
miRijndael := System.Security.Cryptography.RijndaelManaged.Create;
setlength(tempArray, Length(miRijndael.IV));
setlength(encrypted, Length(BufferEncrypted) - Length(miRijndael.IV));
try
bytPK := System.Text.Encoding.UTF8.GetBytes(PK);
miRijndael.Key := bytPK;
for i:=0 to Length(tempArray)-1 do
tempArray[i] := BufferEncrypted[i];
for i:=0 to Length(encrypted)-1 do
encrypted[i] := BufferEncrypted[i + Length(tempArray)];
miRijndael.IV := tempArray;
Result := System.Text.Encoding.UTF8.GetString((miRijndael.CreateDecryptor()).TransformFinalBlock(encrypted, 0, Length(encrypted)));
finally
miRijndael.Clear();
end;
end;
Bye。
0
ターボパワーロックボックス、それはフグ、RSA、MD5、SHA-1、DES、トリプルDESについて サポート、Rijndaelのとメッセージの デジタル署名を提供します。
+2
Win32(および明らかにKylix)には適していますが、Delphiでは.NET用ではありません。 –
0
http://rcolonel.tripod.com/でいくつかDelphiソースがあります。あなたはDelphi.netでそれを使用できるかもしれません。しかし、.netモジュールを見つけて、それを使うだけで良いかもしれません。あなたはdelphi.netでc#またはvb.netモジュールを使用できるはずです。
0
Delphi暗号化ページDCP暗号化コンポーネントには、Rijndaelアルゴリズムの実装が含まれています。 Written by David Barton([email protected])http://www.scramdisk.clara.net/、DCP暗号化コンポーネントは、非常に包括的で、自由にエクスポートでき、対称鍵暗号化コンポーネントです。
ありがとうございます。 – Salvador
+1プロンプトと便利! – Argalatyr
誰かがこの回答を下降させましたか?それが現れてから奇妙に思える。 –