-
第一步……產生key.再獲得key查看全部
-
生成一個key……用了類KeyGenerator查看全部
-
發送消息時的常用dang'shi查看全部
-
嗯查看全部
-
圖查看全部
-
jdkmd5查看全部
-
消息摘要算法的應用場景: 1.發送方與接收方 消息發送方需要公布使用哪種消息摘要算法,然后對待發送的信息進行摘要處理(密文). 發送方首先發送摘要信息(密文)給接收方,再發送信息(明文)給接收方. 接收方在接收到所有信息后會進行一個消息鑒別,將接收到的源信息通過發送方聲明的摘要算法進行消息摘要處理,判斷得到的摘要信息是否與接收到的摘要信息一致,進而判斷接收到的信息是否是完整的. 2.用戶注冊 將用戶提供的密碼進行消息摘要處理,即MD或SHA或MAC算法加密,并把加密后的密碼存入數據庫. 數據庫表中用戶名以明文的形式存在,密碼以密文的形式存在. 用戶登錄,需將用戶提供的密碼經過同一個消息摘要算法處理,然后根據用戶名與處理后的密碼到數據庫中查詢是否存在此用戶. 消息摘要算法作用是保證數據的完整、安全.查看全部
-
CommonCodec實現SHA1算法: (仍然使用DigestUtils工具類,有getXXX方法獲取MessageDigest實例或XXXHex方法直接將指定內容通過摘要處理并轉為16進制) //方式一 DigestUtils.sha1Hex(str.getBytes())); //方式二 MessageDigest digest=DigestUtils.getDigest("SHA"); byte[] data=digest.digest(str.getBytes()); Hex.encodeHexString(data); //方式三 MessageDigest digest=DigestUtils.getSha1Digest(); byte[] data=digest.digest(str.getBytes()); Hex.encodeHexString(data); CommonCodec實現SHA-224、SHA-256、SHA-384、SHA-512算法,只需使用算法對應的方法即可.參照JDK的實現方式.查看全部
-
BouncyCastle實現SHA1算法: (仍然是使用Digest接口,換上對應算法的實現類) Digest digest=new SHA1Digest(); digest.update(str.getBytes(),0,str.getBytes().length); byte [] data=new byte[digest.getDigestSize()]; digest.doFinal(data,0); System.out.println("BouncyCastle SHA-1 "+Hex.toHexString(data)); BouncyCastle實現SHA-224、SHA-256、SHA-384、SHA-512算法,只需要給Digest接口注入對應算法的實現類即可. 例:SHA224Digest()、SHA256Digest()....查看全部
-
SHA算法實現 JDK實現SHA1算法: (仍然是使用MessageDigest類,與MD實現方法一致) //在jdk中,getInstance("SHA")即為SHA-1,SHA-1的名稱就是SHA. MessageDigest digest=MessageDigest.getInstance("SHA"); byte [] data=digest.digest(str.getBytes()); Hex.encodeHexString(data); JDK實現SHA-224、SHA-256、SHA-384、SHA-512算法只要在getInstance()方法中換上對應的算法名即可. 即:getInstance(SHA-224)、getInstance(SHA-256)查看全部
-
在使用JDK的MessageDigest類的時候,可以使用MessageDigest的update(byte [] b)方法指定要摘要的數據,那么就可以使用不帶參數的digest()方法. MessageDigest md=new MessageDigest("MD5"); md.update("imooc".getBytes()); String date=md.digest(); MessageDigest md=new MessageDigest("MD5"); String date=md.digest("imooc".getBytes());查看全部
-
消息摘要算法-SHA(安全散列算法) SHA具有固定長度的摘要信息,在MD4的基礎上發展過來的,由美國國家安全局設定. SHA算法包括: 1.SHA-1 2.SHA-2 (SHA-224、SHA-256、SHA-384、SHA-512這4種統稱為SHA-2) SHA-2只是一個統稱,實際上SHA總共有5種算法. 表格中分別顯示了這5種算法的固定摘要長度,其中沒有顯示CommonCodec,是因為CommonCodec SHA的算法實現是為了簡化JDK SHA算法實現的操作. JDK與BouncyCastle都提供了這5種算法的實現.查看全部
-
消息摘要算法的主要特征是加密過程不需要密鑰,并且經過加密的數據無法被解密,只有輸入相同的明文數據經過相同的消息摘要算法才能得到相同的密文. 消息摘要算法的應用場景: 用戶注冊,將用戶提供的密碼進行消息摘要處理,即MD或SHA或MAC算法加密,并把加密后的密碼存入數據庫. 數據庫表中用戶名以明文的形式存在,密碼以密文的形式存在. 用戶登錄,需將用戶提供的密碼經過同一個消息摘要算法處理,然后根據用戶名與處理后的密碼到數據庫中查詢是否存在此用戶.查看全部
-
CommonCodec實現MD算法 CommonCodec提供了DigestUtils類,該類有getDigest(String algorithm)、getMd2Digest()、getMd5Digest()、getSha..方法等,返回一個MessageDigest實例. 這個MessageDigest就是JDK提供的MessageDigest類. 因此CommonCodec的MD算法實現實際是為了簡化JDK MD算法實現的操作. 1.直接使用DigestUtils的md5Hex(byte [] b)靜態方法,直接把字節數組通過MD5加密并且轉換為16進制,返回字符串類型.還有md2Hex()以及其他算法的方法實現,沒有md4Hex(). CommonCodec實現MD2算法 System.out.println(DigestUtils.md2Hex("imooc".getBytes())); CommonCodec實現MD5算法 System.out.println(DigestUtils.md5Hex("imooc".getBytes())); 在MD系列中,CC與BC區別比較大,CC MD系列的方法只是為了簡便JDK實現MD算法的操作,減少代碼量,而BC則是自己獨立的操作,并且提供MD4算法. 實際上,CommonCodec所有算法實現都是為了簡化jdk的操作.BouncyCastle是為了做額外的補充.查看全部
-
BouncyCastle實現MD算法 1.使用BouncyCastle中的Digest接口,該接口有很多實現類,包括MD2Digest()、MD4Digest()、MD5Digest()、SHA等實例.根據使用加密算法的不同,自行選擇對應的實現類. 2.調用Digest接口的update(byte[] b,inOff,len)方法進行加密,有三個參數,第一個參數是要加密的明文字節數組,第二個參數是從字節數組的哪里開始加密,第三個參數是要加密的長度.方法返回void. 3.調用Digest接口的doFinal(byte[] b,outOff)方法來獲取經過加密后的密文.參數一是用來存放加密后信息的字節數組,參數二是從字節數組的哪里開始存放.方法返回void. BouncyCastle實現MD4加密 Digest digest=new MD4Digest(); digest.update("imooc".getBytes(),0,"imooc".getBytes().length); byte [] b=new byte[digest.getDigestSize()]; digest.doFinal(b,0); System.out.println(Hex.toHexString(b)); //getDisgestSize()方法可以獲取經過加密后摘要的長度. //MD4的使用與MD2、MD5的方式類似,換成對應算法的實現類即可.查看全部
舉報
0/150
提交
取消