自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java常用的幾種加密算法,再厲害的黑客也破解不了!

安全 數(shù)據(jù)安全 算法
本文主要介紹Java常用的幾種加密算法:BASE、MD、SHA和HMAC,熟悉了它們?cè)賲柡Φ暮诳鸵财平獠涣耍?/div>

簡單的java加密算法有:

  • BASE 嚴(yán)格地說,屬于編碼格式,而非加密算法
  • MD(Message Digest algorithm ,信息摘要算法)
  • SHA(安全散列算法)
  • HMAC(Hash Message Authentication Code,散列消息鑒別碼)

[[264359]]

1. BASE

Base是網(wǎng)絡(luò)上最常見的用于傳輸Bit字節(jié)代碼的編碼方式之一,大家可以查看RFC~RFC,上面有MIME的詳細(xì)規(guī)范。Base編碼可用于在HTTP環(huán)境下傳遞較長的標(biāo)識(shí)信息。例如,在Java Persistence系統(tǒng)Hibernate中,就采用了Base來將一個(gè)較長的標(biāo)識(shí)符(一般為-bit的UUID)編碼為一個(gè)字符串,用作HTTP表單和HTTP GET URL中的參數(shù)。在其他應(yīng)用程序中,也常常需要把二進(jìn)制數(shù)據(jù)編碼為適合放在URL(包括隱藏表單域)中的形式。此時(shí),采用Base編碼具有不可讀性,即所編碼的數(shù)據(jù)不會(huì)被人用肉眼所直接看到。(來源百度百科)

java實(shí)現(xiàn)代碼:

java常用的幾種加密算法,再厲害的黑客也破解不了!

java常用的幾種加密算法,再厲害的黑客也破解不了!

2. MD

MD即Message-Digest Algorithm (信息-摘要算法),用于確保信息傳輸完整一致。是計(jì)算機(jī)廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有MD實(shí)現(xiàn)。將數(shù)據(jù)(如漢字)運(yùn)算為另一固定長度值,是雜湊算法的基礎(chǔ)原理,MD的前身有MD、MD和MD。廣泛用于加密和解密技術(shù),常用于文件校驗(yàn)。校驗(yàn)?不管文件多大,經(jīng)過MD后都能生成MD值。好比現(xiàn)在的ISO校驗(yàn),都是MD校驗(yàn)。怎么用?當(dāng)然是把ISO經(jīng)過MD后產(chǎn)生MD的值。一般下載linux-ISO的朋友都見過下載鏈接旁邊放著MD的串。就是用來驗(yàn)證文件是否一致的。

java實(shí)現(xiàn):

java常用的幾種加密算法,再厲害的黑客也破解不了!

java常用的幾種加密算法,再厲害的黑客也破解不了!

MD算法具有以下特點(diǎn):

  • 壓縮性:任意長度的數(shù)據(jù),算出的MD值長度都是固定的。
  • 容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD值很容易。
  • 抗修改性:對(duì)原數(shù)據(jù)進(jìn)行任何改動(dòng),哪怕只修改個(gè)字節(jié),所得到的MD值都有很大區(qū)別。
  • 弱抗碰撞:已知原數(shù)據(jù)和其MD值,想找到一個(gè)具有相同MD值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。
  • 強(qiáng)抗碰撞:想找到兩個(gè)不同的數(shù)據(jù),使它們具有相同的MD值,是非常困難的。

MD的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個(gè)任意長度的字節(jié)串變換成一定長的十六進(jìn)制數(shù)字串)。除了MD以外,其中比較有名的還有sha-、RIPEMD以及Haval等。

第三種.SHA

安全哈希算法主要適用于數(shù)字簽名標(biāo)準(zhǔn)(Digital Signature Standard DSS)里面定義的數(shù)字簽名算法(Digital Signature Algorithm DSA)。對(duì)于長度小于^位的消息,SHA會(huì)產(chǎn)生一個(gè)位的消息摘要。該算法經(jīng)過加密專家多年來的發(fā)展和改進(jìn)已日益完善,并被廣泛使用。該算法的思想是接收一段明文,然后以一種不可逆的方式將它轉(zhuǎn)換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預(yù)映射或信息),并把它們轉(zhuǎn)化為長度較短、位數(shù)固定的輸出序列即散列值(也稱為信息摘要或信息認(rèn)證代碼)的過程。散列函數(shù)值可以說是對(duì)明文的一種“指紋”或是“摘要”所以對(duì)散列值的數(shù)字簽名就可以視為對(duì)此明文的數(shù)字簽名。

java實(shí)現(xiàn):

java常用的幾種加密算法,再厲害的黑客也破解不了!

SHA-與MD的比較:

因?yàn)槎呔蒑D導(dǎo)出,SHA-和MD彼此很相似。相應(yīng)的,他們的強(qiáng)度和其他特性也是相似,但還有以下幾點(diǎn)不同:

  • 顯著區(qū)別是SHA-摘要比MD摘要長 位。使用強(qiáng)行技術(shù),產(chǎn)生任何一個(gè)報(bào)文使其摘要等于給定報(bào)摘要的難度對(duì)MD是^數(shù)量級(jí)的操作,而對(duì)SHA-則是^數(shù)量級(jí)的操作。這樣,SHA-有更大的強(qiáng)度。
  • 對(duì)密碼分析的安全性:由于MD的設(shè)計(jì),易受密碼分析的攻威脅,SHA-顯得不易受這樣的威脅。
  • 速度:在相同的硬件上,SHA-的運(yùn)行速度比MD慢。

第四種.HMAC

HMAC(Hash Message Authentication Code,散列消息鑒別碼,基于密鑰的Hash算法的認(rèn)證協(xié)議。消息鑒別碼實(shí)現(xiàn)鑒別的原理是,用公開函數(shù)和密鑰產(chǎn)生一個(gè)固定長度的值作為認(rèn)證標(biāo)識(shí),用這個(gè)標(biāo)識(shí)鑒別消息的完整性。使用一個(gè)密鑰生成一個(gè)固定大小的小數(shù)據(jù)塊,即MAC,并將其加入到消息中,然后傳輸。接收方利用與發(fā)送方共享的密鑰進(jìn)行鑒別認(rèn)證等。

java實(shí)現(xiàn)代碼:

java常用的幾種加密算法,再厲害的黑客也破解不了!

 

責(zé)任編輯:趙寧寧 來源: 簡書
相關(guān)推薦

2020-12-08 09:06:44

AI機(jī)器人聊天

2020-05-08 11:13:28

Python數(shù)據(jù)技術(shù)

2010-04-21 12:04:06

2024-04-28 11:22:18

2011-08-11 14:17:24

2009-12-29 12:37:17

2023-10-16 19:05:20

2012-09-13 09:58:38

2020-12-16 05:46:58

算法加密算法MD5

2014-07-08 13:42:37

2022-06-01 09:00:56

加密算法密鑰

2011-10-24 14:16:13

XML加密算法XML加密

2020-07-30 07:58:36

加密算法

2010-09-09 10:06:56

Zigbee協(xié)議棧加密算法

2013-03-26 10:03:20

2024-01-04 17:00:59

2024-12-31 08:00:00

SpringBoot開發(fā)加密

2021-11-22 23:20:01

加密算法架構(gòu)

2011-10-24 13:05:50

2020-05-09 14:20:11

信息安全加密
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)