我不是 Delphi 开发者,但我必须将此 delphi 代码转换为 C#:
Function EncodeClave(Clave:String):String;
var
R: String;
FStringFormat:Integer;
begin
FStringFormat:=4196;
with TCipher_Blowfish.Create('CLAVE', nil) do
try
Mode := TCipherMode(0);
R := CodeString(Clave, paEncode, FStringFormat);
Result := R;
finally
Free;
end;
end;
我在研究中发现了以下网站:
http://www.bouncycastle.org/csharp/
和
http://www.schneier.com/code/blowfish.cs
我不明白这条线:
FStringFormat:=4196;
为什么有预定义的格式大小?河豚(DECUtil)是否有另一种转变?
和模式:
Mode := TCipherMode(0);
在Cipher的delphi源码中
(http://www.koders.com/delphi/fidE1F5EC890EF9FD7D5FFEB524898B00BC8403B799.aspx)参数“模式”具有以下顺序:cmCTS、cmCBC、cmCFB、cmOFB、cmECB、cmCTSMAC、cmCBCMAC、cmCFBMAC
所以我想在delphi中模式0是cmCTS ...但实际上我不知道。
结果示例: user : ADMIN pass : ADMIN ---> pass : fAtP3sk=