-
消息摘要算法 — MD MD5 單項加密 MD家族(128位摘要信息) MD2(摘要長度128位) 、MD4(摘要長度128位) MD2,MD5是JDK實現(xiàn)的 MD4是Bouncy Castle實現(xiàn)的查看全部
-
消息摘要算法 MD(Message Digest)消息摘要 SHA(Secure Hash Algorithm)安全散列 MAC(Message Authentication Code)消息認證碼 它用于驗證數(shù)據(jù)完整性 它是數(shù)字簽名核心算法查看全部
-
JDK實現(xiàn)HmacMD5算法 //創(chuàng)建密鑰生成器,指定算法名稱. KeyGenerator keyGenerator=KeyGenerator.getInsatance("HMacMD5"); //初始化密鑰長度 keyGenerator.init(128); //生成密鑰對象 SecretKey secretkey=keyGenerator.generateKey(); //生成密鑰 byte [] key = secretKey.getEncoded(); //還原密鑰 SecretKey restoreSecretKey = new SecretKeySpec(key,"HmacMD5"); //創(chuàng)建Mac實例. Mac mac=Mac.getInstance(restoreSecretKey.getAlgorithm()); //通過還原密鑰初始化. mac.init(restoreSecretKey); //執(zhí)行摘要操作 byte[] hmacMD5Bytes = mac.doFinal("imooc".getBytes()); System.out.println(Hex.encodeHexString(hmacMD5Bytes));查看全部
-
JDK實現(xiàn)HmacMD5算法 1.創(chuàng)建KeyGenerator實例,使用getInstance()靜態(tài)方法,參數(shù)是算法名稱. KeyGenerator:生成指定算法密鑰的密鑰生成器. 2.初始化密鑰生成器,指定密鑰長度. 3.使用KeyGenerator的generatekey()方法初始化一個密鑰對象.返回SecretKey實例. 4.使用SecretKey對象的getEncoded()方法獲取字節(jié)數(shù)組形式的密鑰. 該方法獲得的密鑰會隨著時間的變動而變動,所以每次獲取的密鑰值都不一樣,但都出自同一個SecretKey實例. SecretKey為密鑰對象.使用它的getEncoded()方法返回一個密鑰(字節(jié)數(shù)組形式) 5.還原密鑰,將jdk生成的密鑰,轉換為符合HmacMD5規(guī)則的密鑰. 創(chuàng)建SecretKeySpec實例,該類實現(xiàn)SecretKey接口.構造方法參數(shù)是jdk初始化的密鑰與要轉換的算法名稱. 6.創(chuàng)建一個Mac類,使用Mac的getInstance()靜態(tài)方法,參數(shù)是算法名稱.可以使用SecretKey的getAlgorithm()方法,該方法返回密鑰對象對應的算法名稱. 7.初始化Mac實例,使用init(Key k)方法,參數(shù)是密鑰對象. 8.使用Mac實例的doFinal(byte[] data)方法執(zhí)行摘要操作,參數(shù)是字節(jié)數(shù)組形式的待加密數(shù)據(jù),返回經(jīng)過加密的數(shù)據(jù),以字節(jié)數(shù)組形式返回. 9.把經(jīng)過加密,返回的字節(jié)數(shù)組轉為以十六進制的形式顯示. CC:Hex.encodeHexString(byte[] data) BC:Hex.toHexString(byte[] data) 兩個方法都是把字節(jié)數(shù)組(默認十進制,存入計算機自動轉為二進制)轉為十六進制,并返回字符串形式. 還原密鑰意思是將jdk初始化的密鑰轉換為符合特定算法規(guī)則的密鑰,只要有密鑰的算法,在加密步驟之前都需要進行還原密鑰操作,來作為加密與解密操作時的參數(shù).查看全部
-
消息摘要算法查看全部
-
BCMD5實現(xiàn)查看全部
-
第24行是:①根據(jù)字節(jié)數(shù)組構造秘鑰(restoreSecretKey),②根據(jù)秘鑰的算法(restoreSecretKey.getAlgorithm())實例化一個Mac對象,③根據(jù)給定的秘鑰(restoreSecretKey)初始化Mac對象,④處理給定的 byte 數(shù)組并完成 MAC 操作。查看全部
-
常使用的發(fā)送消息的格式為:原始消息+key+時間戳查看全部
-
消息摘要算法流程: 當發(fā)送方準備發(fā)送信息時,首先將消息加密的算法傳遞公布給消息接收方,然后應用消息算法對要發(fā)送的消息進行摘要digest處理,然后把處理的加密消息發(fā)送給消息接收方,同時把未加密之前的消息也發(fā)送給消息接收方,然后接收方應用之前發(fā)送給它的摘要算法對原文進行算法處理,和傳過來的加密摘要進行對比是不是一致。查看全部
-
消息摘要算法 — MD MD5 單項加密 MD家族(128位摘要信息) MD2(摘要長度128位) 、MD4(摘要長度128位) MD2,MD5是JDK實現(xiàn)的 MD4是Bouncy Castle實現(xiàn)的查看全部
-
消息摘要算法 MD(Message Digest)消息摘要 SHA(Secure Hash Algorithm)安全散列 MAC(Message Authentication Code)消息認證碼 驗證數(shù)據(jù)完整性 數(shù)字簽名核心算法查看全部
-
其他消息摘要算法 都是由BC提供的實現(xiàn).JDK并沒有提供.查看全部
-
MAC摘要算法的使用場景.查看全部
-
不同MAC算法實現(xiàn)類,它對應的摘要長度都與它對應的基礎MD或SHA算法的摘要長度一致查看全部
-
MAC(信息認證碼)算法實現(xiàn) MAC兼容了MD與SHA這兩種的特性,并且在這個基礎上添加了密鑰. 通常又把MAC稱為HMAC,即含有密鑰的散列函數(shù)算法. MD系列算法與SHA系列算法分別是兩種不同形式的信息摘要算法,都是沒有密鑰的散列函數(shù)算法. MAC算法則為MD與SHA系列算法的基礎上添加了密鑰,構成了新的算法. 提供了:HmacMD2、HmacMD4、HmacMD5、HmacSHA1、HmacSHA224、HmacSHA356、HmacSHA384、HmacSHA512算法實現(xiàn)類. 常用于linux系統(tǒng)的客戶端.查看全部
舉報
0/150
提交
取消