ÔÚDelphiÖнâÃÜMagento¼ÓÃܵÄÐÅÓÿ¨ºÅ
ÎÊÌâ±³¾°£º
¹«Ë¾Ï£ÍûʹÓÃMagentoÀ´½øÐнӵ¥£¬¶øºó°Ñ¶©µ¥µ¼Èëµ½Ò»¸öERPϵͳÖÐ(¶©µ¥´¦ÀíÒýÇæ)¡£
ÎÊÌ⣺
ÔÚʹÓÃWebService´ÓMagentoÖлñÈ¡PaymentÐÅϢʱ£¬ÐÅÓÿ¨ÊDZ»¼ÓÃܵÄ(·¨Âɹ涨²»ÔÊÐíÔÚÊý¾Ý¿âÖд洢ÐÅÓÿ¨µÄÃ÷ÎÄÐÅÏ¢)£¡
×ÐϸÑо¿ÁËÒ»ÏÂMagentoµÄ¼ÓÃÜ·½Ê½(/magento/app/code/core/Mage/Core/Model/Encryption.php)·¢ÏÖMagento¶ÔÓÚÃô¸ÐÐÅÏ¢µÄ´¦ÀíÊÇÏȼÓÃÜ¡¢ÔÙÓÃbase64½øÐбàÂë¡£
(ÆäʵÕâ¸öÎÊÌâ¿ÉÒÔ±äͨһÏ£¬ÓÃPHPдһ¸ö½âÃÜÎļþ£¬ÒÔ¼ÓÃܺóµÄÐÅÓÿ¨ºÅ×öΪ²ÎÊý£¬·µ»ØÖµÎªÐÅÓÿ¨µÄÃ÷ÎÄ¡£DelphiÖпÉÒÔÓÃMsxml2.XMLHTTPÖ±½Ó·¢ËͲÎÊý£¬µ«×ܾõµÃ±ðŤ¡£²»¹ýÕâÊÇÒ»¸ö±£µ×·½°¸)
BlowFishÊÇPHP×ÔÉíÌṩµÄË㷨ģ¿é(ÓÃmcrypt_list_algorithms()²é¿´ÆäËùÖ§³ÖµÄµÄË㷨ģ¿éµÄÃüÁî)¡£
public function encrypt($data)
{
return base64_encode($this->_getCrypt()->encrypt((string)$data));
}
ÖªµÀÕâЩºó£¬½ø¶ø¸ú×ÙÆäʹÓõļÓÃÜ·½Ê½ÊÇBlowFish¡£ÄÇÏÂÃæµÄ¹¤×÷¾Í¼òµ¥ÁË¡£
ÐèÒª·Ö¶þ²½ÖèÀ´Íê³É½âÃܹ¤×÷£º
Ò».ÕÒµ½Delphi°æµÄBlowFish(Ö®ËùÒÔÕÒDelphi°æÔ´Âë¶ø²»ÊÇÖ±½ÓÕÒDLL£¬ÊÇÅÂÓÐЩϸ½ÚµãPHPµÄËã·¨»áÓëDelphiµÄËã·¨ÓвîÒ죬Ð޸ķ½±ã£¬½á¹û±»²ÂÖÐÁË¡£
1.1 ÔÚPHPÖУ¬Èç¹ûÃ÷ÎÄÊÇ16λµÄ£¬¼ÓÃܺóµÄÃÜÎÄÒ²»áÊÇ16λµÄ¡£ÔÚDelphiÖУ¬Èç¹ûÃ÷ÎÄÊÇ16λµÄ£¬¼ÓÃܺóÃÜÎĽ«»á±äΪ24λ¡£
1.2 ÔÚPHPÖУ¬Èç¹ûÃ÷ÎIJ»¹»16룬»áÒÔchr(0)À´Ìî³ä£¬ÒÔ±ãÒÔ8λΪһ¸öBlock½øÐмÓÃÜ¡£ÔòÔÚDelphiÖУ¬Èç¹ûÃ÷ÎIJ»¹»16룬»áÒÔÒ»¸öÊý×Ö À´Ìî³ä¡£
¶þ.¶ÔÐÅÓÿ¨ÐÅÏ¢½øÐÐBase64½âÂëÓëBlowFish½âÃܹ¤×÷¡£
ÏÂÃæ¾ÍÊǶÔÐÅÓÿ¨ÐÅÏ¢µÄ½âÃÜ£º
uses
BlowFish,EncdDecd ;//BlowFishµÄÔ´ÂëÏÂÔØ¼ûÒ³µ×
var
DecryptCCNum:TBlowfish;
outstring:string;
begin
DecryptCCNum:=TBlowfish.Create(nil);
try
with DecryptCCNum do
begin
DecryptCCNum.CipherMode:=ECB ;
DecryptCCNum.StringMode:=smNormal;
DecryptCCNum.InitialiseString('4dc73a5cfb22ab514751cded9ef2db4b'); //Õâ¸öÊÇMagento°²×°Ê±ÌṩµÄÃÜÔ¿£¬Èç¹ûÍüÁË¿ÉÒÔÔÚ°²×°³ÌÐòÏÂÃæÔÚ·¾¶app/etc/ϵÄlocal.xmlÎļþ
DecryptCCNum.DecString(DecodeString('¼ÓÃܺóµÄÐÅÓÿ¨ºÅ') ,outstring);
end;
fina
Ïà¹ØÎĵµ£º
½«Ô¶³Ì¿ØÖÆÓ¦ÓÃÓÚ½ÌѧÖУ¬ÒѳÉΪĿǰ¼ÆËã»ú»¯½ÌѧµÄÖØÒªÊֶΡ£Ò»¶¨ÓкܶàµÄÍø³æÏëÁ˽âÕâÖÖÍøÂç½Ìѧ·½Ê½µÄ±à³ÌÔÀí°É¡£ÔÚ´ËÎÒÃǾÍÒÔÒ»¸ö¼òµ¥µÄÔ¶³Ì¿ØÖƳÌÐò×÷ΪʾÀý£¬ËµÃ÷ÕâÖÖÍøÂç±à³ÌµÄ»ù±¾ÔÀí¡£±¾³ÌÐòÒÔDelphi±à³ÌΪÀý¡£
¡¡¡¡Æäʵ¸Ã³ÌÐòµÄ¹¤×÷»úÖÆºÜ¼òµ¥£¬Êܿط½ÔËÐÐÒ»¸ö³ÌÐò£¬ÓÃÓÚÕìÌý¶Ë¿Ú²¢½ÓÊÕÊý¾Ý°ü£¬¶øÖ÷¿Ø·½Í¨¹ý¶ ......
delphi ±àдµÄcom ¶ÔÏó ÓÃphpµ÷ÓÃ
µÄ
ʵÀý
delphi:
function Tmyxml.Get_xml: WideString;
begin
Get_xml:='wo shi a lei!';
end;
function Tmyxml.Get_xmldata: WideString;
var
xmlStr:string;
begin
xmlStr := '<?xml version="1.0" & ......
---
Delphi in a Unicode World Part I: What is Unicode, Why do you need
it, and How do you work with it in Delphi?
By: Nick
Hodges
ÔÎÄÁ´½Ó£ºhttp://dn.codegear.com/article/38437
Abstract: This article discusses Unicode, how Delphi developers
can benefit from using Unicode, and ho ......
var
arrChar : array [0..4] of Char;
b : Byte;
s : string;
begin
s := 'Test';
Move(Pointer(s)^, arrChar, Length(s)); //string to array of char
ShowMessage(arrChar);
b := Ord(s[1]); //First byte string to one single byte
......
ÏÖÔÚÓ¦ÓÃϵͳÁ÷ÐÐÓÃB/S¿ª·¢£¬Ô缸Äêǰ¿ÉÊÇC/SµÄÌìÏÂÄØ£¬ÎÒÏÖÔÚ×öµÄijº½¿Õ¹«Ë¾»õÔ˽áËãά»¤¹¤×÷£¬Æäϵͳ¾ÍÊÇÀûÓÃDelphi¿ª·¢µÄC/SÓ¦ÓóÌÐò£¡ÔÚÈÕ³£µÄά»¤¹¤×÷ÖУ¬ÄÑÃâÒª¶ÔÒѾ×öºÃµÄCOM+×é¼þ½øÐе÷ÊÔ£¬ÒԲ鿴¾ßÌåµÄ´¦ÀíÂß¼£¡±¾ÎľÍÊǽéÉÜÔÚWindowsXP»·¾³ÏÂÈçºÎÔÚDelphiÖе÷ÊÔCOM+×é¼þ£¡
µÚÒ»²½£º¼Ç¼ÏÂÄãÏ£Íûµ÷ÊÔµÄCOM+×é¼þ ......