DES(Data Encryption Standard)是一種常見(jiàn)的分組加密算法,由IBM公司在1971年提出。它是一種對(duì)稱加密算法,也就是說(shuō)它使用同一個(gè)密鑰來(lái)加密和解密數(shù)據(jù)。

創(chuàng)新互聯(lián)建站于2013年開(kāi)始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元巴里坤哈薩克做網(wǎng)站,已為上家服務(wù),為巴里坤哈薩克各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
DES使用一個(gè)56位的初始密鑰,但是這里提供的是一個(gè)64位的值,這是因?yàn)樵谟布?shí)現(xiàn)中每8位可以用于奇偶校驗(yàn)。可以通過(guò)設(shè)定8位字符串,由 crypto/des 庫(kù)的 des.NewCipher(key) 函數(shù)生成密鑰
DES分組的大小是64位,如果加密的數(shù)據(jù)長(zhǎng)度不是64位的倍數(shù),可以按照某種具體的規(guī)則來(lái)填充位。常用的填充算法有 pkcs5 , zero 等
對(duì)稱加密有非常好的安全性,其加解密計(jì)算的性能也較高,但其有兩個(gè)重要缺點(diǎn):
在如今開(kāi)放的信息社會(huì),秘鑰的管理愈加困難,非公開(kāi)的秘鑰機(jī)制雖然破解較難,但還是有遭到攻擊的可能性,由于對(duì)稱加密需要加解密雙方共同握有私鑰,所有生成秘鑰的一方必須分發(fā)給另一方才能進(jìn)行安全通行,這就難免秘鑰在網(wǎng)絡(luò)中傳輸,網(wǎng)絡(luò)是不可靠的,其有可能被攔截或篡改。于是就產(chǎn)生了公開(kāi)秘鑰體制,即服務(wù)方根據(jù)特定算法產(chǎn)生一對(duì)鑰匙串,自己持有私鑰小心保存,而公鑰公開(kāi)分發(fā),在通信中,由公鑰加密進(jìn)行網(wǎng)絡(luò)傳輸,而傳輸?shù)男畔⒅荒苡伤借€解密,這就解決了秘鑰分發(fā)的問(wèn)。公開(kāi)秘鑰體制就是非對(duì)稱加密,非對(duì)稱加密一般有兩種用途:
如今的非對(duì)稱加密比較可靠的有RSA算法和ECC算法(橢圓曲線算法),RSA的受眾最多,但近年來(lái)隨著比特幣、區(qū)塊鏈的興起,ECC加密算法也越來(lái)越受到青睞。下面我們先介紹一下RSA加密算法的使用,ECC我們下一講展開(kāi)。
公鑰密碼體系都是要基于一個(gè)困難問(wèn)題來(lái)保證其安全性的,RSA是基于大數(shù)分解,將一個(gè)即使是計(jì)算機(jī)也無(wú)能為力的數(shù)學(xué)問(wèn)題作為安全壁壘是現(xiàn)代密碼學(xué)的實(shí)現(xiàn)原理。講述這類(lèi)數(shù)學(xué)問(wèn)題需要龐雜的數(shù)論基礎(chǔ),此相關(guān)部分在此不再展開(kāi),感興趣的請(qǐng)出門(mén)右拐搜索歐幾里得證明、歐拉函數(shù)等數(shù)論部分知識(shí)。
Go標(biāo)準(zhǔn)庫(kù)中crypto/rsa包實(shí)現(xiàn)了RSA加解密算法,并通過(guò)crypto/x509包實(shí)現(xiàn)私鑰序列化為ASN.1的DER編碼字符串的方法,我們還使用編解碼包encoding/pem(實(shí)現(xiàn)了PEM數(shù)據(jù)編碼,該格式源自保密增強(qiáng)郵件協(xié)議,目前PEM編碼主要用于TLS密鑰和證書(shū)。)將公私鑰數(shù)據(jù)編碼為pem格式的證書(shū)文件。
使用以上加解密方法:
橢圓曲線密碼學(xué)(英語(yǔ):Elliptic Curve Cryptography,縮寫(xiě):ECC)是一種基于橢圓曲線數(shù)學(xué)的公開(kāi)密鑰加密算法。橢圓曲線在密碼學(xué)中的使用是在1985年由Neal Koblitz和Victor Miller分別獨(dú)立提出的。
ECC的主要優(yōu)勢(shì)是在某些情況下它比其他的算法(比如RSA加密算法)使用更小的密鑰并提供相當(dāng)?shù)幕蚋叩燃?jí)的安全。ECC的另一個(gè)優(yōu)勢(shì)是可以定義群之間的雙線性映射,基于Weil對(duì)或是Tate對(duì);雙線性映射已經(jīng)在密碼學(xué)中發(fā)現(xiàn)了大量的應(yīng)用,例如基于身份的加密。
不過(guò)一個(gè)缺點(diǎn)是加密和解密操作的實(shí)現(xiàn)比其他機(jī)制花費(fèi)的時(shí)間長(zhǎng)。
AES算法基于排列和置換運(yùn)算。排列是對(duì)數(shù)據(jù)重新進(jìn)行安排,置換是將一個(gè)數(shù)據(jù)單元替換為另一個(gè)。AES 使用幾種不同的方法來(lái)執(zhí)行排列和置換運(yùn)算。 AES是一個(gè)迭代的、對(duì)稱密鑰分組的密碼,它可以使用128、192 和 256 位密鑰,并且用 128 位(16字節(jié))分組加密和解密數(shù)據(jù)。與公共密鑰密碼使用密鑰對(duì)不同,對(duì)稱密鑰密碼使用相同的密鑰加密和解密數(shù)據(jù)。通過(guò)分組密碼返回的加密數(shù)據(jù)的位數(shù)與輸入數(shù)據(jù)相同。迭代加密使用一個(gè)循環(huán)結(jié)構(gòu),在該循環(huán)中重復(fù)置換和替換輸入數(shù)據(jù)。
加解密流程圖:
使用CBC模式+PKCS7 填充方式實(shí)現(xiàn)AES的加密和解密
網(wǎng)站題目:go語(yǔ)言數(shù)據(jù)加密實(shí)現(xiàn) go 代碼加密
文章鏈接:http://chinadenli.net/article12/hpeogc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、App開(kāi)發(fā)、做網(wǎng)站、Google、網(wǎng)站改版、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)