我从alredy已有的c ++代码移植歌剧恢复
我发现了这条线
DES_set_key_unchecked((const_DES_cblock *)&hashSignature1[0],&key_schedule1);
我在哪里可以找到类似于delphi中的过程/函数
提前致谢
答案 0 :(得分:0)
不要担心该特定功能,而是退一步看看代码的总体目标。该代码旨在使用3DES加密某些内容。只要您对消息进行3DES加密,任何一个函数的行为都无关紧要。
为此,您应该要求一个能够使用Delphi进行3DES加密的库。 DCPcrypt就是一个例子。使用其TDCP_3des
类并调用其Init
方法。该函数要求输入键是三个键的数组,每个键宽8个字节。 DES_set_key_unchecked
在原始代码中所做的是填充特定于平台的DES_key_schedule
结构,其中包含之前计算的MD5哈希值中的一些字节。 DCPcrypt使用不同的特定于平台的结构:
var
keys: array[0..2, 0..7] of Byte;
ThreeDes: TDCP_3des;
Move(hashSignature1[0], keys[0], SizeOf(keys[0]));
Move(hashSignature1[8], keys[1], SizeOf(keys[2]));
Move(hashSignature2[0], keys[2], SizeOf(keys[1]));
ThreeDes.Init(keys, SizeOf(keys) * 8, ...);