15.3.1 使用Bouncy Castle API創(chuàng)建消息摘要
消息摘要函數(shù)是由org.bouncycastle.crypto.digests包提供的,該包通過與JCA一致的方式實(shí)現(xiàn)各種消息摘要算法。摘 要算法必須實(shí)現(xiàn)orge.bouncycastle.crypto.Digest中定義的接口;這類似于同樣位于SATSA-CRYPTO API中的JCA的MessageDigest接口。可以編寫代碼清單15-5中的代碼來計(jì)算一個(gè)Web請(qǐng)求的MD5摘要。
代碼清單15-5 計(jì)算Web請(qǐng)求的MD5摘要
![]() |
這段代碼的邏輯與使用JCA或SATSA-CRYPTO API編寫的代碼非常類似。在一個(gè)較高層面上,它們采用的方式是相同的:創(chuàng)建消息摘要算法的一個(gè)實(shí)例,使用update方法將用于計(jì)算摘要的字節(jié)傳遞給它,然后使用doFinal方法計(jì)算摘要。但是存在以下區(qū)別。
沒有針對(duì)摘要算法的通用工廠;相反,你顯式地創(chuàng)建所需的摘要算法的一個(gè)實(shí)例(這有助于在鏈接Bouncy Castle實(shí)現(xiàn)時(shí)限制應(yīng)用程序中包含的類的數(shù)量)。
消息摘要算法不會(huì)拋出異常來提示錯(cuò)誤。
Digest接口提供了一種方法,告訴你摘要的長(zhǎng)度將是多少字節(jié)。
除了Digest接口提供的便捷的getDigestSize方法外,還可以調(diào)用Digest方法getAlgorithmName來得到容易理解 的消息摘要算法名稱,可以通過應(yīng)用程序的UI將該名稱提供給用戶。Bouncy Castle API提供的大多數(shù)消息摘要算法實(shí)際上都實(shí)現(xiàn)了ExtendedDigest接口,該接口實(shí)現(xiàn)Digest并添加getByteLength方法。可以調(diào) 用getByteLength來了解摘要將其算法應(yīng)用到內(nèi)部緩沖區(qū)的大小。
?
原文地址:http://book.51cto.com/art/200908/145124.htm[轉(zhuǎn)載]
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
