在涉及安全方面的應用時我們通常都會用到數位簽章技術,並且大多都是通過MD5或SHA1資訊摘要演算法實現,在Series 60 2nd及以前的版本沒有公開這方面的API,我們只能按照RFC文檔上的C語言演算法實現進行移植, 當然移植起來並不困難.Symbian OS v9發佈後使事情變得更簡單了,它公開了一些安全方面的API,下麵就以CMD5為例展示如何進行MD5資訊摘要:

 

void GetMsgDigestByMd5L( TDes8 &aDest, const TDesC8 &aSrc )
{
_LIT8( KDigestFormat, "%02x" );

aDest.Zero();

CMD5 *md5 = CMD5::NewL();

CleanupStack ::PushL( md5 );

TPtrC8 ptrHash = md5->Hash( aSrc );

for( TInt i=0; i < ptrHash.Length(); i++ )

{
aDest.AppendFormat( KDigestFormat, ptrHash[i] );
}

 

CleanupStack::PopAndDestroy( md5 );
}

 

短短幾行代碼就完成了MD5資訊摘要的功能,確實很簡單吧:)當然我們還可以使用CMD5:: Update()不斷增加資訊內容以實現對大量資料的資訊摘要功能.使用CMD5,我們需要包含標頭檔hash.h,並需要連結hash.lib,另外SHA1的實現方法和上面類似,只需把CMD5替換成CSHA1這個類就可以了.
 
 
 
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()