成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

常用加密算法探尋

Yu_Huang / 1882人閱讀

摘要:在開(kāi)發(fā)過(guò)程中,常常用到各種加密方法和算法,本文總結(jié)了幾種常用加密方法的原理。非對(duì)稱加密原理非對(duì)稱加密算法需要兩個(gè)密鑰公開(kāi)密鑰和私有密鑰。

在開(kāi)發(fā)過(guò)程中,常常用到各種加密方法和算法,本文總結(jié)了幾種常用加密方法的原理。


對(duì)稱加密

原理:

加密和解密數(shù)據(jù)使用同一個(gè)密鑰,適合對(duì)大量數(shù)據(jù)進(jìn)行加解密

安全性:

關(guān)鍵是密鑰的保存方式,加密或是解密的任何一方泄漏密鑰,都會(huì)導(dǎo)致信息泄漏

代表算法:

DES、3DES、Blowfish、IDEA、RC4、RC5、RC6、AES等

對(duì)稱密碼常用的數(shù)學(xué)運(yùn)算:

移位和循環(huán)移位

  移位就是將一段數(shù)碼按照規(guī)定的位數(shù)整體性地左移或右移。循環(huán)右移就是當(dāng)右移時(shí),把數(shù)碼的最后的位移到數(shù)碼的最前頭,循環(huán)左移正相反。例如,對(duì)十進(jìn)制數(shù)碼12345678循環(huán)右移1位(十進(jìn)制位)的結(jié)果為81234567,而循環(huán)左移1位的結(jié)果則為23456781。

置換

  就是將數(shù)碼中的某一位的值根據(jù)置換表的規(guī)定,用另一位代替。它不像移位操作那樣整齊有序,看上去雜亂無(wú)章。這正是加密所需,被經(jīng)常應(yīng)用。

擴(kuò)展

  就是將一段數(shù)碼擴(kuò)展成比原來(lái)位數(shù)更長(zhǎng)的數(shù)碼。擴(kuò)展方法有多種,例如,可以用置換的方法,以擴(kuò)展置換表來(lái)規(guī)定擴(kuò)展后的數(shù)碼每一位的替代值。

壓縮

  就是將一段數(shù)碼壓縮成比原來(lái)位數(shù)更短的數(shù)碼。壓縮方法有多種,例如,也可以用置換的方法,以表來(lái)規(guī)定壓縮后的數(shù)碼每一位的替代值。

異或

  這是一種二進(jìn)制布爾代數(shù)運(yùn)算。異或的數(shù)學(xué)符號(hào)為⊕ ,它的運(yùn)算法則如下:
1⊕1 = 0
0⊕0 = 0
1⊕0 = 1
0⊕1 = 1
  也可以簡(jiǎn)單地理解為,參與異或運(yùn)算的兩數(shù)位如相等,則結(jié)果為0,不等則為1。

迭代

  迭代就是多次重復(fù)相同的運(yùn)算,這在密碼算法中經(jīng)常使用,以使得形成的密文更加難以破解。


非對(duì)稱加密

原理:

非對(duì)稱加密算法需要兩個(gè)密鑰:公開(kāi)密鑰(publickey)和私有密鑰(privatekey)。公開(kāi)密鑰與私有密鑰是一對(duì),如果用公開(kāi)密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開(kāi)密鑰才能解密

安全性:

公鑰可以被任何人知道,但是私鑰被泄漏就會(huì)導(dǎo)致信息泄漏

應(yīng)用場(chǎng)景:

數(shù)字簽名,私鑰擁有者對(duì)信息進(jìn)行加密,接受者使用公鑰解密成功,就可以確定發(fā)送者的身份

密鑰長(zhǎng)度:

通常是1024,2048等。密鑰長(zhǎng)度增長(zhǎng)一倍,公鑰操作所需時(shí)間增加約4倍,私鑰操作所需時(shí)間增加約8倍,公私鑰生成時(shí)間約增長(zhǎng)16倍

加密的明文長(zhǎng)度:

加密的明文長(zhǎng)度不能超過(guò)RSA密鑰的長(zhǎng)度減去11byte,比如密鑰長(zhǎng)度是1024位的,1024位=1024bit=128byte,128-11=117byte,所以明文長(zhǎng)度不能超過(guò)117byte,如果長(zhǎng)度超過(guò)該值將會(huì)拋出異常。加密后密文的長(zhǎng)度為密鑰的長(zhǎng)度,如密鑰長(zhǎng)度為1024bit(128Byte),最后生成的密文固定為 1024bit(128Byte)

代表算法:

DES、3DES、Blowfish、IDEA、RC4、RC5、RC6、AES等


哈希散列算法

原理:

采用某種散列函數(shù),輸入不同長(zhǎng)度的明文,得到相同的長(zhǎng)度的密文,明文的微小變化都能引起密文的巨大變化。其實(shí)哈希散列算法不算是真正的加密,而是生成對(duì)應(yīng)明文的指紋信息,用來(lái)校驗(yàn)數(shù)據(jù)的完整性。

安全性:

不能通過(guò)密文反推明文,通常作為數(shù)據(jù)的完整性校驗(yàn)

應(yīng)用場(chǎng)景1:

生成信息摘要,驗(yàn)證信息的完整性

應(yīng)用場(chǎng)景2:

不用明文存儲(chǔ)用戶密碼,比如使用md5(md5(用戶密碼)+salt)來(lái)存儲(chǔ)密碼和驗(yàn)證密碼,防止攻擊者用彩虹表攻擊

代表算法:

MD2、MD4、MD5、PANAMA、SHA-0、SHA-1、SHA-256、SHA-512等

常用算法對(duì)比
名稱 密鑰長(zhǎng)度 運(yùn)算速度 安全性 資源消耗 加密類型
DES 56位 較快 對(duì)稱
3DES 168位 對(duì)稱
IDEA 128位 較慢 對(duì)稱
AES 128、192、256位 對(duì)稱
RSA 1024、2048、3072、4096 非對(duì)稱
DSA 1024、2048、3072、4096 非對(duì)稱
ECC 256 非對(duì)稱
SHA-1 散列
MD5 散列

參考:

DES加密算法原理

DES算法實(shí)例詳解

AES對(duì)稱加密算法掃盲

DES,3DES,AES這三種對(duì)稱密鑰的區(qū)別與聯(lián)系

數(shù)字簽名算法介紹和區(qū)別

HOTP和TOTP算法圖解

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/11379.html

相關(guān)文章

  • 當(dāng)年玩耍httpclient

    摘要:當(dāng)年玩耍前言是開(kāi)發(fā)中最常用的工具之一,通常大家會(huì)使用去調(diào)用遠(yuǎn)程,使用其中比較基礎(chǔ)的,長(zhǎng)期開(kāi)發(fā)爬蟲(chóng),會(huì)接觸不常用的,同時(shí)會(huì)遇到各式各樣的坑,下面會(huì)總結(jié)這些年遇到的坑坑坑坑一解決過(guò)程開(kāi)發(fā)某省份移動(dòng)爬蟲(chóng)時(shí),加載首頁(yè)會(huì)報(bào)標(biāo)題錯(cuò)誤,嘗試各種辦法都不好 當(dāng)年玩耍httpclient 前言 httpclient是java開(kāi)發(fā)中最常用的工具之一,通常大家會(huì)使用httpcilent去調(diào)用遠(yuǎn)程,使用其中比...

    lykops 評(píng)論0 收藏0
  • 探尋hashmap

    摘要:方法計(jì)算出的值,然后去尋找方法如果需要的存放的存儲(chǔ)空間大于默認(rèn)數(shù)組大小負(fù)載因子的乘積,那么就發(fā)生擴(kuò)容,擴(kuò)大為原來(lái)的兩倍問(wèn)題為什么的容量總是的次方因?yàn)橹杏幸粋€(gè)方法是這樣可以減少碰撞概率。例子與不會(huì)發(fā)生碰撞會(huì)發(fā)生碰撞,這是一會(huì)我數(shù)學(xué)概率問(wèn)題。 Hashmap源碼 1、 構(gòu)造器:   a)獲得默認(rèn)數(shù)組大?。?>>4 :16   b) 獲得負(fù)載因子:0.75:衡量hashmap的空間使用程度...

    jifei 評(píng)論0 收藏0
  • 慕課網(wǎng)_《Java實(shí)現(xiàn)Base64加密》學(xué)習(xí)總結(jié)

    摘要:時(shí)間年月日星期一說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。多用于網(wǎng)絡(luò)加密。散列函數(shù)函數(shù)或消息摘要函數(shù)主要作用散列函數(shù)用來(lái)驗(yàn)證數(shù)據(jù)的完整性。 時(shí)間:2017年4月10日星期一說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere...

    verano 評(píng)論0 收藏0
  • killBase系列 -- 密碼學(xué)(一)

    摘要:系列密碼學(xué)二傳送門密碼學(xué)一基礎(chǔ)密碼學(xué)算法分類消息編碼消息摘要類,類,對(duì)稱密碼非對(duì)稱密碼數(shù)字簽名五元組明文原始信息。非對(duì)稱密碼包提供給,,等非對(duì)稱加密算法。對(duì)稱加密算法在分布式網(wǎng)絡(luò)系統(tǒng)上使用較為困難,主要是因?yàn)槊荑€管理困難,使用成本較高。 前言 最近一場(chǎng)面試,面試官問(wèn)了我 對(duì)稱加密與非對(duì)稱加密的問(wèn)題,雖然曾經(jīng)看過(guò)一些內(nèi)容,但是沒(méi)有系統(tǒng)的整理,所以當(dāng)被問(wèn)的時(shí)候,腦子里一片空白,沒(méi)有回答上...

    tomato 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<