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

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